zoukankan      html  css  js  c++  java
  • struts2封装客户端数据到Action

    1.在Action中定义简单数据类型的属性

    给Action定义简单类型的属性,封装客户端请求的数据

    简单类型:String,基本类型和对应的引用类型

    只要保证客户端请求的参数名称和Action的属性名称一样。

     

    2.在Action中定义javabean对象封装客户端数据

    2.1定义实体类

     1 public class Users
     2 {
     3     private String uname;
     4     private String upwd;
     5     private Integer type;
     6     public String getUname()
     7     {
     8         return uname;
     9     }
    10     public void setUname(String uname)
    11     {
    12         this.uname = uname;
    13     }
    14     public String getUpwd()
    15     {
    16         return upwd;
    17     }
    18     public void setUpwd(String upwd)
    19     {
    20         this.upwd = upwd;
    21     }
    22     public Integer getType()
    23     {
    24         return type;
    25     }
    26     public void setType(Integer type)
    27     {
    28         this.type = type;
    29     }
    30 }

    2.2定义Action

    Action中定义Javabean对象,作为属性

     1 public class UserAction2
     2 {
     3     /***
     4      * 使用javabean对象作为Action的属性,封装客户端请求的数据
     5      * 如果Users类中存在一个属性为Score类型,Score类中存在一个属性Integer类型num
     6 
     7      * 参数名称怎么写?user.score.num(属性链),struts2框架会自动的属性链上的每一个
     8 
     9      * javabean类型进行实例化(ognl)
    10 
    11      * **/
    12     private Users user;
    13     public Users getUser()
    14     {
    15         return user;
    16     }
    17     public void setUser(Users user)
    18     {
    19         this.user = user;
    20     }
    21     public String userReg2()
    22     {   
    23         System.out.println(user.getUname()+"  ===  "+user.getUpwd()+" === "+user.getType());  
    24         return Action.SUCCESS;
    25     }
    26 }

    2.3注册Action 

    2.4定义UI页面

     1 <!-- 使用javabean作为Action的属性 -->
     2 <form action="userAction2_userReg2.action" method="post">
     3     <div>
     4         uname:
     5         <input type="text" name="user.uname" />
     6     </div>
     7     <div>
     8         upwd :
     9         <input type="text" name="user.upwd " />
    10     </div>
    11     <div>
    12         type :
    13         <select name="user.type">
    14             <option value="1">管理员</option>
    15             <option value="2">用户</option>
    16         </select>
    17     </div>
    18     <div>
    19         <input type="submit" value="注册" />
    20     </div>
    21 </form>

    总结:struts2框架会自动的获得客户端请求的参数,自动的类型转化,自动的封装为需要业务对象。

     

    3 实现接口ModelDriven

    ModelDriven:接口使用ognl表达式完成对象执行的封装,而getModel方法的返回值是被默认访问的对象。

    3.1定义Action 

     1 public class UserAction3 implements ModelDriven<Users>
     2 { 
     3     //定义Action的属性,同时进行实例化
     4     private Users user=new Users();
     5     /**
     6      * 该方法会将客户端请求的参数,封装到users对象中,将users对象放入
     7      * Action的值栈中.(ongl)
     8      * 如果实现ModelDriven接口,
     9      * 请求参数会被默认封装带getModel方法的返回值对象中
    10      * 当获取需要的执行的是,默认由getModel方法的返回值对象中获得
    11      * 好处:简化了参数的访问形式(客户端参数的命名,el表示的形式进行简化)
    12      */
    13     @Override
    14     public Users getModel()
    15     {
    16         System.out.println("---------------"+user);
    17         return user;
    18     }
    19     public String userReg3()
    20     {  
    21         System.out.println(user.getUname()+"  -------  "+user.getUpwd()+" ------- "+user.getType());
    22         return Action.SUCCESS;   
    23     }
    24 }


    3.2定义UI页面 

     1 <!-- 通过实现ModelDirven接口,封装客户端数据 -->
     2 <form action="userAction3_userReg3.action" method="post">
     3     <div>
     4         uname:
     5         <input type="text" name="uname" />
     6     </div>
     7     <div>
     8         upwd :
     9         <input type="text" name="upwd" />
    10     </div>
    11     <div>
    12         type :
    13         <select name="type">
    14             <option value="1">管理员</option>
    15             <option value="2">用户</option>
    16         </select>
    17     </div>
    18     <div>
    19         <input type="submit" value="注册" />
    20     </div>
    21 </form>
  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/guanghe/p/6058124.html
Copyright © 2011-2022 走看看