struts2中的Action(二)

. 动态方法调用

一个Action包含多个业务处理功能,根据用户请求表单的不同,调用不同的方法,struts1DispatchAction相似.

 

首先要设置:

struts.enable.DynamicMethodInvocation=true 设置支持动态方法调用,默认为true,可以不用设

 

Action与配置不变:

 

public class LogonAction {
	private String userName;
	private String userPwd;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	
	public String login() throws Exception{
		return "succee";
	}
}

 

 

Action配置

 

<action name="logon" class="com.LogonAction">
            <result name="succee">/logon/welcome.jsp</result>
            <result name="input">/logon/logon.jsp</result>
</action>

 

 

<form action="logon!login.action" method="post">

 

Logon!logon.action:意思是提交表单给 logon.actionlogin()方法来处理

 

 

 

使用通配符

 

1.
<action name="user*" class="com.UserAction" method="{1}">
       <result name="succee">/logon/welcome.jsp</result>
       <result name="input">/logon/logon.jsp</result>
</action>

比如当用户请求userLogon时,会被UserAction类处理,method{1}中{1}值为name属性中第一个*的值.

 

2.

<action name="*Action_*" class="com.{1}" method="{2}">
        <result name="succee">/logon/welcome.jsp</result>
        <result name="input">/logon/logon.jsp</result>
 </action>

 

 

当用户请求UserAction_logon时,会被UserAction类的logon方法处理
与上面一样,class中{1}的值为name属性中第一个*的值,也就是UserAction,{2}的值为name属性中第二个*的值,即为logon

三.跟据请求参数觉定结果

<action name="logon" class="com.LogonAction">
            <result name="succee" type="redirect">/logon/welcome.jsp?userName=${userName}</result>
            <result name="input">/logon/logon.jsp</result>
</action>

 

 

 

Welcome.jsp
<body>
  request.getParamter:<%=request.getParameter("userName") %>
</body>

${属性名} 就是action中的属性值.
在welcome.jsp中可以通过request.getparamter得到userName的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值