zoukankan      html  css  js  c++  java
  • struts2获取前台数据的三种方式

    struts获取前台传送数据的三种方式
        1.使用Action的属性
        2.使用DomainModel
        3.使用ModelDriven
    前台form如下,传输了两个参数:username,password 
                                   <form style="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;
    	}
    }
     
    

      

  • 相关阅读:
    shell脚本sed的基本用法
    shell grep的基本用法
    禁止表单提示输入--autocomplete属性
    Cookie操作介绍
    JSP中的两种重定向
    SSM
    题解 P4994 【终于结束的起点】
    题解 P1286 【两数之和】
    题解 P2340 【奶牛会展】
    题解 CF450B 【Jzzhu and Sequences】
  • 原文地址:https://www.cnblogs.com/skiz/p/2669422.html
Copyright © 2011-2022 走看看