具体的调用方式:
* 方法的动态调
* 在<action>中配置method属性
* 使用通配符
1. 方法的动态调用方式:(不推荐,会将方法名暴漏出来。但可以通过伪连接隐藏起来。)
action名称+!+方法名称+后缀
<a href="user!add.action">添加用户</a><br>
<a href="user!del.action">删除用户</a><br>
!!动态调用参数配置,默认为true,可以调用,设置为false不能通过此种方式调用。
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
!!Action中的定义所有方法格式必须和execute方法一致(参数,返回值,异常最好也一样)
2. 在<action>中配置method属性
<action name="add" class="com.mumu.struts2.UserAction" method="add">
<action name="update" class="com.mumu.struts2.UserAction" method="update">
3. Struts2的Action中包含多个方法如何调用(使用通配符)
具体配置("{1}"表示第一个*所代表的值。)
<action name="*User" class="com.mumu.struts2.UserAction" method="{1}">
<result>/{1}Success.jsp</result>
</action>
注意:页面上也要与action中保持一致,如:
<a href="loginUser.action" target="_blank">login</a>
<a href="saveUser.action" target="_blank">login</a>
在Struts2的<action>标签class、name、method和result标签上都可以使用通配符通配符的作用就是为了减少配置量,通配符需要建立在约定的基础上
多个通配符*-*(*代表变化的)
1). 配置xml文件:
<package name="one" extends="struts2" namespace="/">
<action name="*-*User" class="com.mumu.action.TestAction" method="{1}">
<result name="{2}">/{1}User.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
单个通配符和多个通配符若后面跟的内容一样时(*User和*-*User),不能同时使用。因为可能第一个会将第二个的请求拦截住。
2). 页面调用:<a href="save-saveUser.action" target="_blank">save</a>
3). action类中的返回值:
public String save(){
str = "保存方法";
return "save";
}