• struts2学习笔记之五:表单数据收集的几种方式


    方法一:struts2对ModelDriven模式的支持(模型驱动模式)
    Struts2可以采用类似于Struts1中的ActionForm方式收集数据,这样方式叫ModelDriven模式
    Action需要实现ModelDriven接口,实现getModel()方法,返回Bean对象,这样struts2会通过getModel()方法拿到对象,使用set方法把数据填充到对象中
    创建User类(Bean对象,包含geter方法和seter方法的纯java类)
    User类
    package com.djoker.struts2;
    
    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;
        }
    }
    LoginAction类
    package com.djoker.struts2;
    
    import com.opensymphony.xwork2.ModelDriven;
    
    public class LoginAction implements ModelDriven<User>{
    
        private User user = new User();
        
        public String execute() throws Exception {
            if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
                return "success";
            }
            
            return "error";
        }
    
        @Override
        public User getModel() {
            return user;
        }
        
    }
    方法二:在表单域中直接对对象进行赋值(该方法必须把对象分离到单个类中,类似ModelDriven模型驱动模式)
    不需要实现ModelDriven接口,是直接操作对象的get和set方法,所以需要提供该对象的set和get方法
    Action类
    package com.djoker.struts2;
    
    public class LoginAction{
    
        private User user;
        
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        public String execute() throws Exception {
            if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
                return "success";
            }
            
            return "error";
        }
        
    }

     jsp页面中的form表单书写方式

        <form action="login.action" method="post">
            用户名:<input type="text" name="user.username"><br>
            密    码:<input type="password" name="user.password"><br>
            <input type="submit" value="登录">
        </form>
  • 相关阅读:
    Ubuntu20.04本地安装Redash中文版
    ubuntu设置root密码
    qmake设置生成文件分类
    QML对象的构造函数和析构函数
    QString使用split按照某字符进行分解
    Qt的qDebug直接打印不添加头文件
    C++宏定义中的#
    Qt设置生成的文件路径
    QWidget禁止最大化
    js-去掉回车和空格
  • 原文地址:https://www.cnblogs.com/djoker/p/6218524.html
Copyright © 2020-2023  润新知