zoukankan      html  css  js  c++  java
  • Struts2接收参数的几种方式

    Struts2接收参数的几种方式:
    1. 用Action的属性:
    在action里面定义要接收的参数,并提供相应的setter,getter,可以和提交参数的名称一致,并不用做数据类型的转换。
    如:
    Java 代码
    1. public class UserAction extends ActionSupport {  
    2.     private String password;  
    3.     pirvate String name;  
    4.   
    5.   //……对应的setter,getter方法  
    6.   
    7. public void execeute() {  
    8.         System.out.println(name +”:”+passowrd);  
    9.               return “success”;  
    10.   
    11. }  
    12.   
    13. }  
    public class UserAction extends ActionSupport { private String password; pirvate String name; //……对应的setter,getter方法 public void execeute() { System.out.println(name +”:”+passowrd); return “success”; } }
    相应提交方式可以用get和post,如:userAction?password=admin&name=admin
    2. 使用Domain Model:
    在Action里面不存很多的属性,而是用Model层用到的模型,保存它的一个对象
    如:
    Java 代码
    1. public class UserAction extends ActionSupport {  
    2.       
    3.     private User user;  
    4.   
    5.   //……对应的setter,getter方法  
    6.   
    7. public void execeute() {  
    8.    System.out.println(user.name +”:”+user.passowrd);  
    9.    return “success”;  
    10.   
    11. }  
    12.   
    13. }  
    public class UserAction extends ActionSupport { private User user; //……对应的setter,getter方法 public void execeute() { System.out.println(user.name +”:”+user.passowrd); return “success”; } }
    提交参数:userAction?user.password=1&user.name=admin;这里面的user指向Action 里面的user。

    3. 使用DTO--数据传输对象
    它的作用是接收参数,传递参数,并不是项目中的实体类。如用户注册时,会用到确认密码,所以要先把参数接收过来,做处理后,再传递给相应方法去创 建User对象。
    Java 代码
    1. public class UserDTO {  
    2.   
    3.     private String name;  
    4.     private String password;  
    5.     private String confirm;  
    6. //……对应的setter,getter方法  
    7. }  
    public class UserDTO { private String name; private String password; private String confirm; //……对应的setter,getter方法 }
    可能的Action
    Java 代码
    1. public class UserAction extends ActionSupport {  
    2.       
    3.     private UserDTO  user;  
    4.   
    5.   //……对应的setter,getter方法  
    6.   
    7. public void execeute() {  
    8.     if(checkdate(userDTO userDTO) )//检查数据{  
    9.         newUser(UserDTO  userDTO)//创建User对象  
    10.   
    11.             System.out.println(user.name +”:”+user.passowrd);  
    12.   
    13. return “success”;  
    14. }  
    15. return “fail”;  
    16.   
    17. }  
    18.   
    19. }  
    public class UserAction extends ActionSupport { private UserDTO user; //……对应的setter,getter方法 public void execeute() { if(checkdate(userDTO userDTO) )//检查数据{ newUser(UserDTO userDTO)//创建User对象 System.out.println(user.name +”:”+user.passowrd); return “success”; } return “fail”; } }
    提交参数的方式的Domail Model方式的相同。


    4.使用ModelDriven:
    在创建Action的时候,发现Action实现了ModelDriven接口,去调用 接口的getModel()方法,取到了User。
    Java 代码
    1. public class UserAction extends ActionSupport implements ModelDriven<User> {  
    2.       
    3.     private User user = new User();  // 这里要手动的New下  
    4.   
    5.   //……对应的setter,getter方法  
    6.   
    7. public void execeute() {  
    8.         System.out.println(user.name +”:”+user.passowrd);  
    9. return “success”;  
    10.   
    11. }  
    12.   
    13.  @Override  
    14.     public User getModel() {  
    15.     return user;  
    16. }  
    17. }  
    public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); //这里要手动的New下 //……对应的setter,getter方法 public void execeute() { System.out.println(user.name +”:”+user.passowrd); return “success”; } @Override public User getModel() { return user; } }
    相应提交方式可以用get和post,如:userAction?password=admin&name=admin
  • 相关阅读:
    Design Pattern Quick Overview
    [转载]最好的HTML 5编码教程和参考手册分享 .
    业务学习
    [收藏转载]明星软件工程师的十种特质
    一般函数指针和类的成员函数指针
    [LoadRunner]负载测试工具
    [收藏转载]2011 APP年终总结——日均160元的收入经历
    Importance of Side Projects
    [P4 password]Avoiding the Perforce Prompt for Password in Windows
    [收藏转载]我所积累的20条编程经验
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400310.html
Copyright © 2011-2022 走看看