Struts2基础入门(四)action类的三种访问方式

1.传统访问

struts.xml文件里面的action配置:

<action name="Action_add" class="com.xj.struts.HelloAction" 
method="add"></action>

这里的配置说明了只要访问的请求Action_add传进来了,struts底层就会通过反射调用class属性里面的类,并实现method属性记录的方法。
这种访问方式虽然有效,但是不够灵活,当项目模块较多,action类里面的方法非常多的时候,配置文件就会变得非常冗余笨重。

2.通配符访问

struts.xml文件里面的action配置:

<action name="Action_*_*" class="com.xj.struts.HelloAction" 
method="{1}"></action>

这里对请求name使用了" * "通配符,这个就类似于正则表达式,只要请求前面带了Action_之类的请求就会被该action进行匹配。后面method中的 {1} ,代表name属性值中的第一个通配符,如果是{2},则代表第二个通配符。类似于数组,一一对应。
如果你是在struts2 2.5版本下使用统配符,记得在package标签下面添加

<global-allowed-methods>regex:.*</global-allowed-methods>

开启全局允许的变量,不然将无法使用通配符。
使用通配符的action动作标签就会变得十分灵活,并且可以减少重复的action标签配置。这将会是我们日常开发中用到的最多的一种访问方式。

3.动态访问(感叹号)

struts.xml文件里面的action配置:

<!-- 开启动态方法访问 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />

这里必须先在常量中开启动态访问方式,然后就是action标签的写法:

<action name="Action" class="com.xj.struts.HelloAction"></action>

因为开启了动态访问,那么动态在哪里呢?答案是访问请求的格式:
动态访问格式:/动作类路径!动作类里面的方法名
比如/Action!add
配置文件就会去访问action标签对应的类里面的add方法。
此方法需要先开启动态访问,这个方法官方不推荐,平时开发也用得比较少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章