日期:2014-05-17  浏览次数:20577 次

struts.xml配置路径问题
index.jsp
<form action="login.do" method="post">
  <input type="submit" value="提交"/>
</form>

web.xml
<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
  <param-name>config</param-name>
  <param-value>struts-default.xml,struts-plugin.xml,/WEB-INF/struts.xml</param-value>
  </init-param>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

struts.xml
<package name="defaultaction" extends="struts-default">
 <action name="login" class="com.zpyt.actions.LoginAction">
<result name="success" type="dispatcher">/success.jsp</result>
<result name="fail" type="dispatcher">/error.jsp</result>
 </action>
</package>

action
public String execute()throws Exception{
System.out.println("找到累了");
return "success";
}
404异常
type Status report

message /LoginPro/login.do

description The requested resource (/LoginPro/login.do) is not available.



找的我实在是累了一直报这个异常,到底是struts那里配置错了啊主要是点击index里面的提交按钮的时候总是404.

------解决方案--------------------
web.xml
XML code

  <filter>
      <filter-name>struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

------解决方案--------------------
如楼上所说,可能struts2对这个*.do特排斥一样的,我上次也配成*.do就一直报错,连启动都报错。

你换成<url-pattern>/*</url-pattern>,或许就不会出现这个错误了。

然后form的提交里面写成login.action或者login都行。
------解决方案--------------------
struts2的配置跟struts1的配置有很大的不同
第一struts2默认是以*.action为后缀的,而且你在web.xml中路径最好配置成/*,你要修改后缀名要在struts.xml中添加一行<constant name="struts.action.extension" value="do" />
第二,若有多个配置文件,只要在struts.xml中这样引用 <include file="struts-default.xml" />
即可
------解决方案--------------------
web.xml
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
------解决方案--------------------
struts.xml放在src下面,
struts.xml

XML code

<package name="defaultaction" extends="struts-default">
 <action name="login" class="com.zpyt.actions.LoginAction">
<result name="success" type="dispatcher">/success.jsp</result>
<result name="error" type="dispatcher">/error.jsp</result>
 </action>
</package>

------解决方案--------------------
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter写这个看看