zoukankan      html  css  js  c++  java
  • 属性驱动

    概述

    通过属性(模型)驱动,可以使得Action获取到用户表单所提交的数据。

    【属性驱动】

    1.概述

    所谓属性驱动是指使用类的属性(成员字段)来接收用户提交的数据。

    2.实现步骤

    • 第一步:创建Action
    • 第二步:添加对应的属性(成员字段)并生成get/set访问器
    • 第三步:编写请求处理方法
    • 第四步:配置Action

    3.示例1 基本类型作为属性

    [View]

     1 <form action="user/add.action" method="post">
     2         <table>
     3             <tr>
     4                 <th>姓名:</th>
     5                 <td>
     6                     <input type="text" name="userName" /> 
     7                 </td>
     8             </tr>
     9             <tr>
    10                 <th>帐号:</th>
    11                 <td>
    12                     <input type="text" name="account" /> 
    13                 </td>
    14             </tr> 
    15             <tr>
    16                 <th>密码:</th>
    17                 <td>
    18                     <input type="text" name="pwd" /> 
    19                 </td>
    20             </tr>   
    21             <tr>
    22                 <td>
    23                     <input type="submit" value="保存" />
    24                 </td>
    25             </tr>        
    26         </table>
    27     </form>

    [Action]

     1 /**
     2  * 属性驱动方式获取表单数据
     3  * 
     4  *     将表单提交的数据以Action属性(成员字段)的形式进接收
     5  * @author Terry
     6  *
     7  */
     8 public class UserAction implements Action{
     9     private String userName;
    10     private String account;
    11     private String pwd;
    12     
    13     /**
    14      * 请求处理方法
    15      */
    16     @Override
    17     public String execute(){
    18         System.out.println("userName = " + userName);
    19         System.out.println("account = " + account);
    20         System.out.println("pwd = " + pwd);
    21         System.out.println("==========================================
    ");
    22         return "success";
    23     }
    24     
    25     //get/set访问器
    26 }

    [配置文件]

    1     <package name="UserAction" extends="struts-default" namespace="/user">
    2         <action name="add" class="cn.hl.action.UserAction">
    3             <result>/index.jsp</result>
    4         </action>
    5     </package>

    [执行结果]

    4.示例2 引用类型作为属性

    [View]

     1     <form action="user/add.action" method="post">
     2         <table>
     3             <tr>
     4                 <th>姓名:</th>
     5                 <td>
     6                     <input type="text" name="user.userName" /> 
     7                 </td>
     8             </tr>
     9             <tr>
    10                 <th>帐号:</th>
    11                 <td>
    12                     <input type="text" name=" user.account" /> 
    13                 </td>
    14             </tr> 
    15             <tr>
    16                 <th>密码:</th>
    17                 <td>
    18                     <input type="text" name=" user.pwd" /> 
    19                 </td>
    20             </tr>   
    21             <tr>
    22                 <td>
    23                     <input type="submit" value="保存" />
    24                 </td>
    25             </tr>        
    26         </table>
    27     </form>

    [Javabean]

    1 public class User {
    2     private String userName;
    3     private String account;
    4     private String pwd;
    5     
    6     public User() {
    7         // TODO Auto-generated constructor stub
    8     }
    9 }

    [Action]

     1 public class UserAction2 implements Action{
     2     private User user ;
     3     
     4     /**
     5      * 请求处理方法
     6      */
     7     @Override
     8     public String execute(){
     9         System.out.println(user);
    10         System.out.println("==========================================
    ");
    11         return "success";
    12     }
    13 
    14     public User getUser() {
    15         return user;
    16     }
    17 
    18     public void setUser(User user) {
    19         this.user = user;
    20     }
    21     
    22 }

    [配置文件]

    1         <action name="add2" class="cn.hl.action.UserAction2">
    2             <result>/update2.jsp</result>
    3         </action>

    [执行结果]

    【注意事项】

    • 基本类型作为属性时,属性名(成员字段名)必须和表单中name值一致
    • 属性必须提供get/set访问器。否则将无法获取到数据值
    • 引用类型作为成员属性时,不需要进行实例化
  • 相关阅读:
    Android -- BroadCastReceiver的简单使用
    iOS-UITextField 全面解析
    iOS判断对象相等 重写isEqual、isEqualToClass、hash
    iOS开发 之 不要告诉我你真的懂isEqual与hash!
    浅谈 Objective-C 下对象的初始化
    iOS学习之Object-C语言继承和初始化方法
    Objective-c 中如何重写父类的初始化方法
    OC学习篇之---类的初始化方法和点语法的使用
    iOS7实现带文本输入框的UIAlertView及获取TextField文本内容
    UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
  • 原文地址:https://www.cnblogs.com/zhzcode/p/9897152.html
Copyright © 2011-2022 走看看