首页 > 代码库 > 一个Action多个方法的调用

一个Action多个方法的调用

在大家写Action的时候,配置struts2.xml文件的时候我们大家都知道需要method={1}这个属性但是我们有的时候并不清楚到底他是什么意思。下面我总结了下Action中的方法调用的方法,希望能帮到大家理解!



具体的调用方式:(一共三种方式)
* 方法的动态调用
* 在<action>中配置method属性
* 使用通配符


①方法的动态调用方式:
action名称+!+方法名称+后缀

<a href=http://www.mamicode.com/"user!add.action">添加用户

<a href=http://www.mamicode.com/"user!del.action">删除用户

<a href=http://www.mamicode.com/"user!update.action">修改用户

<a href=http://www.mamicode.com/"user!list.action">查询用户


!!动态调用参数配置,默认为true,可以调用,否则不能调用
<constant name="struts.enable.DynamicMethodInvocation" value=http://www.mamicode.com/"false"/>

!!Action中的所有方法必须和execute方法一致(参数,返回值,异常最好也一样)


②在<action>标签中配置method属性

<package name="user-package" extends="struts-default">
		<!-- 
		<action name="add" class="com.bjpowernode.struts2.UserAction" method="add">
			<result>/success.jsp</result>
		</action>

		<action name="del" class="com.bjpowernode.struts2.UserAction" method="del">
			<result>/success.jsp</result>
		</action>

		<action name="update" class="com.bjpowernode.struts2.UserAction" method="update">
			<result>/success.jsp</result>
		</action>
		
		<action name="list" class="com.bjpowernode.struts2.UserAction" method="list">
			<result>/success.jsp</result>
		</action>
		 -->	
		 
		<action name="addUser" class="com.bjpowernode.struts2.UserAction" method="add">
			<result>/success.jsp</result>
		</action>

		<action name="delUser" class="com.bjpowernode.struts2.UserAction" method="del">
			<result>/success.jsp</result>
		</action>

		<action name="updateUser" class="com.bjpowernode.struts2.UserAction" method="update">
			<result>/success.jsp</result>
		</action>
		
		<action name="listUser" class="com.bjpowernode.struts2.UserAction" method="list">
			<result>/success.jsp</result>
		</action>
	</package>

③使用通配符

具体配置


<action name="*User" class="com.bjpowernode.struts2.UserAction" method="{1}">
<result>/{1}Success.jsp</result>
</action>


在Struts2的<action>标签class、name、method和result标签上都可以使用通配符
通配符的作用就是为了减少配置量,通配符需要建立在约定的基础上