zoukankan      html  css  js  c++  java
  • 5、struct2的支持ModelDriver获得参数

    1、在以前的代码中我们我们需要获得jsp传递过来的参数我们采用下面的方式获得

    package com.weiyuan.test;
    
    /**
     * struct2的action可以不继承任何框架的接口
     * 1、默认调用的是execute()方法
     * */
    public class LoginAction {
        private String username;
        private String password;
        
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String execute() throws Exception{
            System.out.println("execute is called");
            System.out.println("execute is called" +username);
            System.out.println("execute is called"+password);
            if("admin".equals(username)&&"admin".equals(password)){
                return "success";
            }else{
                return "error";
            }
        }
    
    }

    这样存在不好的问题,action做好处理业务类,不要把bean对象的操作放在action中,我们可以采用ModelDriver驱动模式,让action集成ModelDriver来实现

     我们新建立一个实体类User对象

    package com.weiyuan.test;
    
    public class User {
    
        private String username;
        private String password;
        
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }

    然后修改我们的action,需要实现ModelDriver接口

    package com.weiyuan.test;
    
    import com.opensymphony.xwork2.ModelDriven;
    
    /**
     * struct2的action可以不继承任何框架的接口
     * 1、默认调用的是execute()方法
     * */
    public class LoginAction  implements ModelDriven<User>{
    
         private User user;
        
        public String execute() throws Exception{
            System.out.println("execute is called");
            if("admin".equals(getModel().getUsername())&&"admin".equals(getModel().getPassword())){
                return "success";
            }else{
                return "error";
            }
        }
    
        @Override
        public User getModel() {
            // TODO Auto-generated method stub
            if(user  == null){
                user = new User();
            }
            return user;
        }
    
    }

    这样就可以了

    总结:

    Struts2对ModelDriven模式的支持

    Struts2可以采用类似于Struts1中的ActionForm方式收集数据,这样方式叫ModelDriven模式

    如何实现模型驱动模式?
    * 创建User
    * Action需要实现ModelDriven接口

  • 相关阅读:
    Jquery 跨域问题
    Linux下scp的用法
    JZ2440_V3_内核驱动程序_点亮一个LED灯
    MATLAB GUIDE 上位机串口通信开发 绘制图形
    关于在DSP工程内数组、strnpy函数、atoi函数的使用心得
    Visio中手绘图形的填充
    Ubuntu16.04NFS配置与ARM开发板互传文件_挂载和卸载
    树莓派压力测试工具STui + Stress的使用
    如何将代码优雅的插入到word中
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/8028011.html
Copyright © 2011-2022 走看看