浏览 3999 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-18
<package name="admin.security" extends="default" namespace="/security"> <default-interceptor-ref name="paramsPrepareParamsStack" /> <action name="*/*" class="{1}Action" method="{2}"> <result name="index">/pages/admin/security/{1}/index.jsp</result> <result name="input">/pages/admin/security/{1}/edit.jsp</result> <result name="success" type="redirect">{1}/index.do</result> </action> </package> 检查了所有可能发生错误的位置,没有找到问题,于是跟踪DefaultActionMapper的代码。发现alwaysSelectFullNamespace为true,这个变量我从未动过,它是定义在default.properties中的,并且缺省值是false。于是在struts.xml中重新定义这个值: <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant> <constant name="struts.enable.SlashesInActionNames" value="true"></constant> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"></constant> <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper"></constant> 问题解决。 但是为什么会这样呢?难道是struts2的BUG? 如果真是这样,我也许会用SpringMVC之类的框架了,本来就觉得struts2不太好用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-19
问楼主一个问题
struts.enable.SlashesInActionNames 我在default.properties里怎么没找到? 这个有什么用? |
|
返回顶楼 | |
发表时间:2008-03-20
struts.enable.SlashesInActionNames在default.properties中有。
用处是可以让你在action name中使用/ <action name="*/*" class="{1}Action" method="{2}"> |
|
返回顶楼 | |