spring+struts配置找不到action,请帮忙解答,折腾好几天了:(

superstorm5 2008-01-10 12:47:30
struts配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans>
<form-bean name="regForm"
type="com.yourcompany.struts.form.RegForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="regForm" input="/reg.jsp" name="regForm"
path="/reg" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="suc" path="/suc" />
</action>

</action-mappings>

<controller
processorClass="org.springframework.web.struts.DelegatingRquestProcessor">
</controller>


<message-resources
parameter="com.yourcompany.struts.ApplicationResources" />

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
</struts-config>

applicationContext配置如下


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean name="/reg" class="com.yourcompany.struts.action.RegAction"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
</bean>

</beans>

jsp页面如下

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic"
prefix="logic"%>


<html>

<TITLE>报修记录</TITLE>

<head>
<meta http-equiv="Pragma" content="no-cache" />
<link href="../../css/style.css" rel="stylesheet" type="text/css">
</head>
<BODY>


<form name="login" action="/reg" method="post">
<!-- 隐藏字段 -->
<input type="hidden" name="method" value="add">
<!-- input type="hidden" name="createdDate"-->



</form>


</BODY>
</html>
<script>

login.submit();

</script>

地址栏输入http://127.0.0.1:8088/test/reg.jsp
然后自动跳转到http://127.0.0.1:8088/reg

报错信息如下:
HTTP状态404 - /reg

--------------------------------------------------------------------------------

type 状 态 报 告

信 息 /reg

描 述 没有所要求的资源(/reg)



地址栏输入 http://127.0.0.1:8088/test/reg.do
报错

HTTP状态404 - 无法找到Servlet action

--------------------------------------------------------------------------------

type 状 态 报 告

信 息 无法找到Servlet action


提前谢谢您的指点

...全文
363 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
superstorm5 2008-01-10
  • 打赏
  • 举报
回复
在网上查看了一些spring找不到action的帖子,都没有具体说怎么解决的,比较着急,谢谢
superstorm5 2008-01-10
  • 打赏
  • 举报
回复
折腾了那么长时间,最后我把里面的jar包全部替换掉,问题解决了
代码没有改动,就是myeclipse自动导入的那些包不全或者是不兼容,具体是怎么回事我还不是非常清楚,毕竟刚接触,非常感谢你们的回答,谢谢
superstorm5 2008-01-10
  • 打赏
  • 举报
回复
十分感谢大家回贴,我开始用的是myeclipse自动导入struts+spring的jar包,可能是兼容有问题,要不就是自动导入的jar包不全,我从别的工程里面把jar包导进来,就可以运行了,谢谢你们
100度泡腾 2008-01-10
  • 打赏
  • 举报
回复
单从贴出的代码看不出问题出在什么地方,仔细检查一下吧,估计 <action-mappings>
<action attribute="regForm" input="/reg.jsp" name="regForm"
path="/reg" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="suc" path="/suc" />
</action> 这里存在问题!
hejinliang 2008-01-10
  • 打赏
  • 举报
回复
无论spring怎么配置,你都要在web.xml里解决http://127.0.0.1:8088/reg的显示问题。
superstorm5 2008-01-10
  • 打赏
  • 举报
回复
web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<!--DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"-->
<web-app>



<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>

<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>





<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>/reg.jsp</welcome-file>
</welcome-file-list>
</web-app>

superstorm5 2008-01-10
  • 打赏
  • 举报
回复
非常感谢您的回答,我没有定义默认页面,也没有加入过滤的class,在struts中的org.springframework.web.struts.DelegatingActionProxy这个好像是struts把action控制权交给spring的方法,关于第四个,应该没有问题吧,我在applicationContext里面定义了这个action的访问路径啊,很感谢您的回答,我尝试了一下,还是不可以
flush_520 2008-01-10
  • 打赏
  • 举报
回复
1.自动跳转错误,可能是web.xml的配置有问题
你的web.xml中是不是这样:
<welcome-file-list>
<welcome-file>
./reg //定义首页面
</welcome-file>
</welcome-file-list>
改为:<welcome-file-list>
<welcome-file>
/reg.jsp //定义首页面
</welcome-file>
</welcome-file-list>

2.web.xml中是否有:
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.do</url-pattern> //定义过滤页面的格式
</filter-mapping>
没有加上,确保里面是这样:<url-pattern>*.do</url-pattern>

3.struts-config.xml中的
<form-bean name="regForm"
type="com.yourcompany.struts.form.RegForm" />
</form-beans> 中的这个类
com.yourcompany.struts.form.RegForm
<action-mappings>中
里面的这个类:org.springframework.web.struts.DelegatingActionProxy是否存在,位置正确否?书写正确不?
4,reg.jsp的表单中action="/reg"改为action="/reg.do"

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧