Struts2框架的Action

Action中的默认方法名字是execute,有一个String类型的返回值,而且没有形式参数。

Action中的方法名可以不是exectue,可以使任何合法的标示符,然而返回值类型必须是String,而且不能有形式参数。

例:

jsp页面register.jsp

<s:form action="RegisterAction">
	<s:textfield name="custname" label="Input your custname"></s:textfield>
	<s:password name="pwd" label="Input your password"></s:password>
	<s:textfield name="age" label="Input your age"></s:textfield>
	<s:textfield name="address" label="Input your address"></s:textfield>
	<s:submit value="Register"></s:submit>
</s:form>
创建Action类,RegisterAction.java

package Action;

import dao.Impl.CustomerDAOImpl;
import Service.CustomerServiceImpl;
import VO.Customer;

public class RegisterAction {

	private String custname;
	private String pwd;
	private Integer age;
	private String address;
	public String getCustname() {
		return custname;
	}
	public void setCustname(String custname) {
		this.custname = custname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String register(){
		CustomerServiceImpl cs = new CustomerServiceImpl();
		cs.setDao(new CustomerDAOImpl());
		try{
		cs.register(new Customer(custname,pwd,age,address));
		return"regsuccess";
		}catch(Exception e) {
			e.printStackTrace();
			return "regfail";
		}
		
	}
}
配置struts.xml

    	<action name="RegisterAction" class="Action.CustomerAction" method="register">
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    	</action>
将多个Action类“合并”
例:

登入和注册Action

package Action;

import dao.Impl.CustomerDAOImpl;
import Model.LoginService;
import Service.CustomerServiceImpl;
import VO.Customer;

public class CustomerAction {

	private String custname;
	private String pwd;
	private Integer age;
	private String address;
	public String getCustname() {
		return custname;
	}
	public void setCustname(String custname) {
		this.custname = custname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String login(){
		CustomerServiceImpl cs = new CustomerServiceImpl();
		cs.setDao(new CustomerDAOImpl());
		boolean flag=cs.login(custname, pwd);
		if(flag){
			return "success";
		}else{
			return "fail";
		}
	}
	
	public String register(){
		CustomerServiceImpl cs = new CustomerServiceImpl();
		cs.setDao(new CustomerDAOImpl());
		try{
		cs.register(new Customer(custname,pwd,age,address));
		return"regsuccess";
		}catch(Exception e) {
			e.printStackTrace();
			return "regfail";
		}
}
}
配置文件struts.xml

<action name="Customerlogin" class="Action.CustomerAction" method="login">
    		<result name="success">/welcome.jsp</result>
    		<result name="fail" >/index.jsp</result>
    	</action>
    	<action name="Customerregister" class="Action.CustomerAction" method="register">
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    	</action>

JSP 文件

<s:form action="Customerlogin">
<s:textfield name="custname" label="Input your custname"></s:textfield><br>
<s:password name="pwd" label="Input your password"></s:password><br>
	<s:submit value="Login"></s:submit>
</s:form>

Action类的不同调用方式

1、在struts.xml中通过method属性指定方法名。

    	<action name="RegisterAction" class="Action.CustomerAction" method="register">
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    	</action>
<s:form action="RegisterAction">
	<s:textfield name="custname" label="Input your custname"></s:textfield>
	<s:password name="pwd" label="Input your password"></s:password>
	<s:textfield name="age" label="Input your age"></s:textfield>
	<s:textfield name="address" label="Input your address"></s:textfield>
	<s:submit value="Register"></s:submit>
</s:form>
2、使用动态方法调用(DMI)方式

    	<action name="Customer" class="Action.CustomerAction">
    		<result name="success">/welcome.jsp</result>
    		<result name="fail" >/index.jsp</result>
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    		</action>
<s:form action="Customer!login">
<s:textfield name="custname" label="Input your custname"></s:textfield><br>
<s:password name="pwd" label="Input your password"></s:password><br>
	<s:submit value="Login"></s:submit>
</s:form>

3、使用提交按钮的method属性

    	<action name="Customer" class="Action.CustomerAction" >
    		<result name="success">/welcome.jsp</result>
    		<result name="fail" >/index.jsp</result>
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    		</action>
<s:form action="Customer">
<s:textfield name="custname" label="Input your custname"></s:textfield><br>
<s:password name="pwd" label="Input your password"></s:password><br>
	<s:submit value="Login" method="login"></s:submit>
</s:form>
4、使用通配符配置Action

    	<action name="Customer*" class="Action.CustomerAction" method="{0}">
    		<result name="success">/welcome.jsp</result>
    		<result name="fail" >/index.jsp</result>
    		<result name="regsuccess">/index.jsp</result>
    		<result name="regfail" >/register.jsp</result>
    		</action>



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值