zoukankan      html  css  js  c++  java
  • struts 模型驱动

    情景: 有一个用来处理用户的UserAction 类, 该动作类实现了 ModelDriven 接口. 当用户触发UserAction 动作时, ModelDriven 拦截器将调用相关UserAction 对象的 getModel() 方法, 并把返回的模型(User实例)压入到 ValueStack 栈. 接下来 Parameters 拦截器将把表单字段映射到 ValueStack 栈的栈顶对象的各个属性中. 因为此时 ValueStack 栈的栈顶元素是刚被压入的模型对象, 所以该模型将被填充. 如果某个字段在模型里没有匹配的属性, Param 拦截器将尝试 ValueStack 栈中的下一个对象.

    一个模型类必须有一个不带任何参数的构造器.

    写法 例子:

    前端代码

    1 <form action="${pageContext.request.contextPath }/user_add" name="form_">
    2         用户名:<input type="text" name="user.userName" />  <br>
    3             密码:<input type="text" name="user.pwd" /><br/>
    4             <input type="submit" value="提交">
    5     </form>

    后台代码

     1 //----------------user----------实体类------------------
     2 package test.a_usertest;
     3 public class User {
     4     private String userName;
     5     private String pwd;
     6     public String getUserName() {
     7         return userName;
     8     }
     9     public void setUserName(String userName) {
    10         this.userName = userName;
    11     }
    12     public String getPwd() {
    13         return pwd;
    14     }
    15     public void setPwd(String pwd) {
    16         this.pwd = pwd;
    17     }
    18 }
    19 //--------action---------------------------------
    20 package test.a_usertest;
    21 
    22 import java.util.ArrayList;
    23 import java.util.List;
    24 
    25 import com.opensymphony.xwork2.ActionSupport;
    26 import com.opensymphony.xwork2.ModelDriven;
    27 
    28 public class UserAction extends ActionSupport implements ModelDriven<User>{
    29 
    30     private User user = new User();
    31     public User getUser() {
    32         return user;
    33     }
    34     public void setUser(User user) {
    35         this.user = user;
    36     }
    37     public User getModel() {
    38         return this.user;
    39     }
    40     public String add(){
    41         List<Object> list = new ArrayList<Object>();
    42         list.add(user);//打个断点在这里可以发现,此时user.userName 、user.pwd的值为前端传过来的值,也就是页面中的this.user对象自动被封装了
    43         return SUCCESS;
    44     }
    45 }
  • 相关阅读:
    gnuplot
    charles证书安装
    jenkins 配置ssh
    jenkins 配置slave
    centos 安装jenkins
    mac的一些命令
    docker 常用命令
    GO vim环境
    go vendor目录
    protobuf
  • 原文地址:https://www.cnblogs.com/fnz0/p/6021573.html
Copyright © 2011-2022 走看看