struts动态方法调用

首先我们写出对应实现的action类:

public class UserAction extends ActionSupport implements ModelDriven<User>{
	private static Logger log=Logger.getLogger(UserAction.class);
	@Override
	public String execute() throws Exception {
		log.debug("执行execute()方法>>>>>>");
		return "success";
	}
	public String add(){
		log.debug("执行add()方法>>>>>>");
		return "ADD";
	}
	public String update(){
		log.debug("执行update()方法 >>>>>>");
		
		return "UPDATE";
	}
	public String delete(){
		log.debug("执行delete()方法 >>>>>>");
		
		return "DELETE";
	}
}



方法一:

1:Action的method属性完成动态方法调用 


<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
	<package name="student" namespace="/" extends="struts-default">
		<action name="user" class="com.ittx.strutsproject.action.UserAction">
			<result>/sucess.jsp</result>
		</action>
		<action name="userAdd" class="com.ittx.strutsproject.action.UserAction" method="add">
			<result name="ADD">/add_student.jsp</result>
		</action>

		<action name="userUpdate" class="com.ittx.strutsproject.action.UserAction" method="update">
			<result name="UPDATE">/update_student.jsp</result>
		</action>

		<action name="userDelete" class="com.ittx.strutsproject.action.UserAction" method="delete">
			<result name="DELETE">/result.jsp</result>
		</action>
	</package>
</struts>


方法二:
2:感叹号方式 !

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <!--#让struts2支持动态方法调用;并且可以将它声明到静态文件配置里
	struts.enable.DynamicMethodInvocation=true-->
	<package name="student" namespace="/" extends="struts-default">
	    
		<!-- 解决struts2.5 通配符调用无效的问题 -->
		<global-allowed-methods>regex:.*</global-allowed-methods>
		
		<action name="user" class="com.ittx.strutsproject.action.UserAction">
			<result>/sucess.jsp</result>
			<result name="ADD">/add_student.jsp</result>
			<result name="UPDATE">/update_student.jsp</result>
			<result name="DELETE">/result.jsp</result>
		</action>
	</package>
</struts>



对应的静态页面设置 :struts.properties

#让struts2支持动态方法调用


struts.enable.DynamicMethodInvocation=true




方法三:也是最常用的一种
3:通配符方式 

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>

	<package name="student" namespace="/" extends="struts-default">
		<!-- 解决struts2.5 通配符调用无效的问题 -->
		<global-allowed-methods>regex:.*</global-allowed-methods>

		<action name="user_*" class="com.ygr.struts.action.UserAction"
			method="{1}">

			<result name="success">/success.jsp</result>
			<result name="add">/add.jsp</result>
			<result name="update">/update.jsp</result>
			<result name="delete">/delete.jsp</result>
		</action>

	</package>

</struts>



上述访问格式为://http:ip+8080+项目名称 user_对应的方法(add||update||delete)do


注:这里可以有多个*号。第几个*号就用数字表示几。上述方法为最常用的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值