今天心血来潮,想搞搞Struts2的通配符配置,省得每次写一堆差不多的配置,看着就烦。搞起!
准备工作
咱得把Struts2的环境搭起来。打开MyEclipse,创建一个Web项目,把Struts2的jar包都丢进去。这一步,老手们都懂,我就不啰嗦。
然后,在*里面配置一下Struts2的核心过滤器。这玩意儿就像一个门卫,所有Struts2的请求都得经过它:
<filter>
<filter-name>struts2</filter-name>
<filter-class>**.*</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
弄完这一步,Struts2这就算进门。
开始搞通配符
就是重头戏。咱打开Struts2的配置文件,一般叫*。以前,我都是这么写的:
<action name="addUser" class="*" method="add">
<result>/*</result>
</action>
<action name="deleteUser" class="*" method="delete">
<result>/*</result>
</action>
你看,每个action都要写一遍,烦不烦?有通配符,咱就可以这么写:
<action name="_" class="*.{1}Action" method="{2}">
<result>/{2}*</result>
</action>
解释一下:
- `_ `:这就是通配符,``代表任意字符。这样,我访问`user_*`,或者`product_*`,都能匹配到这个action。
- `{1}`:代表第一个``匹配到的内容。比如`user_*`,`{1}`就是`user`。
- `{2}`:代表第二个``匹配到的内容。比如`user_*`,`{2}`就是`add`。
这样,我就把`UserAction`里面的`add`、`delete`方法,还有`ProductAction`里面的各种方法,都用一个action配置搞定!
踩坑与解决
实践过程中,我也不是一帆风顺的。我把result写成`/*`,结果发现,不管怎么搞,都找不到页面。后来我才想起来,result里面也可以用通配符!改成`/{2}*`,问题解决!
总结
用通配符,Struts2的配置文件一下子清爽不少。以后再也不用写那么多重复的配置。感觉自己又掌握一个偷懒的技巧,哈哈!这回实践,也让我对Struts2的通配符有更深的理解。以后写配置,再也不怕麻烦!