访问Struts2的Action路径问题

我在struts.xml中配置了一个Action,名叫news启动Tomcat,在地址栏中输入:http://localhost:8080/GraPro/news.act... 我在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"/>不行?
展开
 我来答
bochm
2009-04-20 · TA获得超过360个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:173万
展开全部
一般来说,只要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的说明吧

---------------------
因为response.sendRedirct("news.action")是采用浏览器重新定位的方法去请求的,相当于你在地址栏直接输http://localhost:8080/GraPro/news.action
而jsp:forward 是将request和response作为参数传递请求,它会读取web根目录+action path 作为请求URL
无奇不有AW
2009-04-20
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
试试看 ../new.action
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式