struts2获取前台数据的三种方式

struts获取前台传送数据的三种方式
    1.使用Action的属性
    2.使用DomainModel
    3.使用ModelDriven
前台form如下,传输了两个参数:username,password 
                               <form style="width:30%;margin-top:100px;" action="login.action">
				<fieldset style="text-align: center; size: auto" title="login">
					<legend>login</legend>
					Username:
					<input type="text" name="username" maxlength="20" />
					<br>
					Password:
					<input type="password" name="password" maxlength="20"></input>
					<br>
					<input type="submit" value="sumbit" align="right">
					<input type="reset" value="reset" align="right">
				</fieldset>
			</form>

  

第一种:使用Action的属性接受参数

   方法是,在对应的login.action中设置两个String变量,变量名为username,password.(变量名可以随便取)
  然后使用get,set方法。Action会调用setXXX方法来获取值。
  比如说前台传参数是param,那么它会调用setParam()来获取值。
code如下:
public class LoginAction {
	String username;  
	String password;

        //使用set方法获取参数
	public void setPassword(String password) {
		this.password = password;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String execute(){
		System.out.println("username:"+username);
		System.out.println("password:"+password);
		return "success";
	}
}

 第二种方法:使用DomainModel来获取前台参数

 在Action中设置一个对象来接收前台参数,传参时参数变量为类名+变量名一一对应(本例为user.username,user.password,这样会直接调用User的setUsername()和setPassword)

class User {
	private String username;
	private String password;
	public void setPassword(String password) {
		System.out.println("-------->set Password");
		this.password = password;
	}
	public void setUsername(String username) {
		System.out.println("---------->set username");
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public String getUsername() {
		return username;
	}
}

public class LoginAction {
	public User user; //第二种利用DomainModel,直接调用对象的set方法生成对象 不用new  
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String execute(){
		if(user==null){
			System.out.println("no user...");
			return "error";
		}
		System.out.println("username:"+user.getUsername());
		System.out.println("password:"+user.getPassword());
		return "error";
	}
}

  第三种:使用ModelDriven

     方法是实现ModelDriven接口,传参直接使用对象的属性为变量,必须new一个新的对象

class User {
	private String username;
	private String password;
	public void setPassword(String password) {
		System.out.println("-------->set Password");
		this.password = password;
	}
	public void setUsername(String username) {
		System.out.println("---------->set username");
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public String getUsername() {
		return username;
	}
}

public class LoginAction implements ModelDriven<User>{
	private User user=new User(); 
	public String execute(){
		if(user==null){
			System.out.println("no user...");
			return "error";
		}
		System.out.println("username:"+user.getUsername());
		System.out.println("password:"+user.getPassword());
		return "error";
	}
	public User getModel() {
		return user;
	}
}
 

  

 

posted on 2012-09-03 20:50  mathore  阅读(934)  评论(0编辑  收藏  举报