访问Struts2的Action路径问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:11:49
我在struts.xml中配置了一个Action,名叫news
启动Tomcat,在地址栏中输入:
http://localhost:8080/GraPro/news.action能正确访问,GraPro是我项目的名字,我现在要实现这样一个功能,在WebRoot下有一个index.jsp,里面就一句话:<jsp:forward page="news.action"/>
目的是当用户访问的时候跳转到news.action,可是问题来了,报404错误,找不到news.action,后来我着改成了/news.action、/GraPro/news.action等,都不行,请问Struts2的路径是怎么回事?我改了N多回也搞不定,请教高手,谢谢!
改成了<%response.sendRedirct("news.action");%>就正确了,为什么<jsp:forward page="news.action"/>不行?

一般来说,只要web.xml中配置正确的映射路径,struts.xml能够实例化action就不会出现404错误,可能是web.xml中的filter-mapping出现问题

<filter>
<filter-name>action</filter-name>
<filter- class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>action</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

你把<url-pattern>/*</url-pattern>的内容改动后调试看看,good luck!
----------------------------
Struts2的路径和struts1的一致,/ 表示web应用更目录(就是GraPro目录),在struts2中FilterDispatcher就是根据你在web.xml filter-mapping中配置的路径去映射你的请求路径(/news.action),
如果匹配,就加载struts.xml中定义的actionMapping,然后转交action处理请求

你可以参考:http://www.blogjava.net/max/archive/2006/10/10/74353.html的说明吧

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