首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

struts2通配符的使用以及action、result、package的name和namespace属性同名时的处理方法

2013-02-17 
struts2通配符的应用以及action、result、package的name和namespace属性同名时的处理方法1.对于同一个packa

struts2通配符的应用以及action、result、package的name和namespace属性同名时的处理方法

1.对于同一个<package>下两个name属性相同的<action>,struts2是这样处理的,后面的<action>将覆盖前面的<action>

2.对于同一个<action>下两个name属性相同的<result>,struts2是这样处理的,后面的<result>将覆盖前面的<result>

3.配置文件中两个同name属性的<package>(无论是否在同一xml文件中),struts2是这样处理的,启动tomcat时,会报错。

4.配置文件中两个不同name属性,但namespace属性相同的<package>,struts是这样处理的,将两个<package>下的<action>合并,遇到相同name属性的<action>时,后面<package>定义的<action>将覆盖前面<package>的<action>。


最近在项目中使用了通配符缩减繁杂的result配置,(例如:如果访问这个http://localhost:8080/project/admin/photo_edit.jhtml,Action中方法的返回值为photo_edit,寻找相应的jsp页面为photo_edit.jsp)默认的dispatcher转发都没有什么问题,但如果出现特殊的需要处理的result时,遇到了问题,比如下面我想在访问edit这个方法是redirectAction到photo_query这个action处理:

1个通配符
<action name="*_*" class="f{1}Action" method="{2}"><result name="success">/WEB-INF/page/front/${contents}/${jspFile}</result><result name="{1}_{2}">/WEB-INF/page/front/home/{1}_{2}.jsp</result></action>
根据上面的分析,两个通配符的使用会大大的缩减package中Action的配置,所以使用了上面的配置,但是不要忘记了需要特殊处理的返回值,例如上面的返回值为success的,我就是使用的动态确认返回值。通配符的使用的前提是action、method和jsp页面都要有统一的命名规范。

热点排行