论坛首页 Java企业应用论坛

Struts2 的多后缀名 .do + .action

浏览 14012 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2012-04-20  
jinnianshilongnian 写道
从你的配置上我认为没有问题,现在你应该确定一下几点:
1、首先clean下项目 并 同步一下,排除配置文件不同步的问题
2、使用×××RelativeUser.do和.action进行访问,如果没有问题,则说明是testaction的问题
3、检查是否有testAction这个Bean

4、将启动日志(debug模式) 和 访问日志 打包上传上来再分析是什么问题



在第二点就有问题,我运行登录 login.do 可以正常访问,换成 login.action 就是404,说明 .action 后缀 没有Struts.xml 配置成功。 (ps:启动日志没有什么特别的信息)
0 请登录后投票
   发表时间:2012-04-20  
skanion 写道
struts 2 本身已经够慢了,生存周期这么长,还多后缀.性能可想而知 , 这样的问题让前段nginx rewrite 下就解决了

呵呵 暂时不考虑第三方 Filter. 因为Struts 本身肯定是支持这个功能的。  谢谢你的建议
0 请登录后投票
   发表时间:2012-04-20  
837062099 写道
yyyhhh0123 写道
jobar 写道
在struts.properties文件里面配置
struts.action.extension=action,do

或者在struts.xml里面配
<constant name="struts.action.extension" value=",action,do" />

jobar 谢谢 你的回复。
你看我 struts.xml里的配置 已经申明了,但是 访问 .action  是不行的


上面所说的是最正确的方法了。
如果你没有配置这个信息:<constant name="struts.action.extension" value=",action,do" />
struts是不知道请求名字为xxx.action到底对应的是你struts.xml配置文件里的那个配置,所以会失败。
我自己实现过的struts的这个功能:
loginPage=com.xxx.xxx.action.AuthorizerAction,loginPage
#This can be used to set your default encoding
constant.encoding=utf-8

constant.action.extension=.action,.do,.act,.xn


虽然不能很肯定struts是如何实现后缀解析的。但是我的解析方法来说,你这种没有先配置后缀,直接在web.xml里配置是没用的。


这就是让人纠结的地方。 其实需要配置的地方就是3个:  web.xml 加上 <filter-mapping>*.action</filter-mapping>,
在 struts.xml 配置 .action, 具体的 Action 映射。 
0 请登录后投票
   发表时间:2012-04-20  
建议SPRING MVC吧
0 请登录后投票
   发表时间:2012-04-20  
有意思吗?
0 请登录后投票
   发表时间:2012-04-20  
struts2框架 code behind  或者 Struts2_Convention
zero配置
0 请登录后投票
   发表时间:2012-04-20  
lianglove_0 写道
有意思吗?

求解。
0 请登录后投票
   发表时间:2012-04-21  
yyyhhh0123 写道
837062099 写道
yyyhhh0123 写道
jobar 写道
在struts.properties文件里面配置
struts.action.extension=action,do

或者在struts.xml里面配
<constant name="struts.action.extension" value=",action,do" />

jobar 谢谢 你的回复。
你看我 struts.xml里的配置 已经申明了,但是 访问 .action  是不行的


上面所说的是最正确的方法了。
如果你没有配置这个信息:<constant name="struts.action.extension" value=",action,do" />
struts是不知道请求名字为xxx.action到底对应的是你struts.xml配置文件里的那个配置,所以会失败。
我自己实现过的struts的这个功能:
loginPage=com.xxx.xxx.action.AuthorizerAction,loginPage
#This can be used to set your default encoding
constant.encoding=utf-8

constant.action.extension=.action,.do,.act,.xn


虽然不能很肯定struts是如何实现后缀解析的。但是我的解析方法来说,你这种没有先配置后缀,直接在web.xml里配置是没用的。


这就是让人纠结的地方。 其实需要配置的地方就是3个:  web.xml 加上 <filter-mapping>*.action</filter-mapping>,
在 struts.xml 配置 .action, 具体的 Action 映射。 


web.xml里面要配置成 <url-pattern>/*</url-pattern>,用 struts.action.extension=.action,.do 来控制后缀
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics