最近在看JeeCMS的源码,大量使用通配符,稍微有点不习惯。呵呵!
总结整理一下。
使用通配符,将配置量降到最低,不过,一定要遵守“约定优于配置”的原则。
如:访问/namespace/Studentadd,使用如下的配置:
先根据路径找到Student*这个Action,即StudentAction。然后再去寻找所{1}代表的方法,即寻找add方法。
即{1}代表是add,*代表的也是add,最后的返回也是Studentadd_success.jsp
所以,如果命名规则定义的很优秀,可以使用以下的配置来进行Action的配置(即开发预定优秀)。
在这里,一定要注意大小写的问题,否则类的匹配可能出现问题。
如果有以下三个Action配置,则首先匹配最精确的配置:
所以首先匹配第一个Action。
总结整理一下。
使用通配符,将配置量降到最低,不过,一定要遵守“约定优于配置”的原则。
如:访问/namespace/Studentadd,使用如下的配置:
<action name="Student*" class="com.struts2.action.StudentAction" method="{1}">
<result>/Student{1}_success.jsp</result>
</action>
先根据路径找到Student*这个Action,即StudentAction。然后再去寻找所{1}代表的方法,即寻找add方法。
即{1}代表是add,*代表的也是add,最后的返回也是Studentadd_success.jsp
所以,如果命名规则定义的很优秀,可以使用以下的配置来进行Action的配置(即开发预定优秀)。
<action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
在这里,一定要注意大小写的问题,否则类的匹配可能出现问题。
如果有以下三个Action配置,则首先匹配最精确的配置:
<action name="Student_add" class="com.struts2.action.StudentAction" method="add">
<action name="Student_*" class="com.struts2.action.StudentAction" method="{1}">
<action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
所以首先匹配第一个Action。