• 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;
    	}
    }
     
    

      

  • 相关阅读:
    位运算的应用
    MySql的自增主键以及TEXT数据类型使用
    MaxDos启动盘拆解
    QT预备式(包含MySql配置)未完成……
    关于Services.exe开机CPU内存使用暴增解决方案
    Windows Upnp 服务补丁——UpnpFix V1.0
    Memory Ordering
    "FoxitReaderOCX.ocx failed to load" 问题解决方案
    LameDropXPd V2.0 (L.A.M.E 3.97) 完美汉化版
    编译QT的MySql驱动问题及解决方案
  • 原文地址:https://www.cnblogs.com/skiz/p/2669422.html
Copyright © 2020-2023  润新知