• struts2 页面向Action传参方式


    1、基本属性注入

      我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入。例如

      jsp页面:

    <s:form method="post" action="/Login">
        <s:textfield name="username" label="用户名"/>
        <s:password name="password" label="密码"/>
        <s:submit></s:submit>
    </s:form>

      Action:

    package action;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    
    import models.User;
    
    
    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(){
            //用户名或密码错误
            if(!"admin".equals(this.username) || !"123456".equals(this.password)){
                return Action.LOGIN;
            }
            //用户名和密码正确
            else{
                return Action.SUCCESS;
            }
        }
    }

    只需要在Action中提供username和password两个属性,并提供了setXXX()方法,就可以实现参数的自动传递,这里不需要成员变量的名称和参数名称一致,只需要setXXX()对于的属性名和参数名相同就行

    2、域模型注入

       如果表单上的数据项很多,我们可以将表单中的数据项封装成实体对象后传递给Action,而Action需要提供实体对象属性来接收参数,这种传参的方式称为域模型注入。

       如上面例子,可以先定义一个User实体类

    package models;
    
    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中

    package action;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    
    import models.User;
    
    
    public class LoginAction {
    
        private User user;
        public User getUser() {
            return user;
        }
        public void setUser(User user) {
            this.user = user;
        }
    
        public String execute(){
            //用户名或密码错误
            if(user==null || !"admin".equals(user.getUsername()) || !"123456".equals(user.getPassword())){
                return Action.LOGIN;
            }
            //用户名和密码正确
            else{
                return Action.SUCCESS;
            }
        }
    }

      

      jsp页面:

    <s:textfield name="user.username" label="用户名"/>
    <s:password name="user.password" label="密码"/>
    <s:submit></s:submit>

    3、模型驱动传参数(Model Driven)

    Action:

    package action;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ModelDriven;
    
    import models.User;
    
    
    public class LoginAction implements ModelDriven<User>{
    
        private User user=new User();
        
    
        public String login(){
            //用户名或密码错误
            if(user==null || !"admin".equals(user.getUsername()) || !"123456".equals(user.getPassword())){
                return Action.LOGIN;
            }
            //用户名和密码正确
            else{
                return Action.SUCCESS;
            }
        }
    
    
        public User getModel() {
            // TODO Auto-generated method stub
            return user;
        }
    }

    JSP页面

    <s:textfield name="username" label="用户名"/>
    <s:password name="password" label="密码"/>
    <s:submit></s:submit>

      

     

  • 相关阅读:
    Elasticsearch集成IKAnalyzer分析器
    Elasticsearch操作Document文档
    ElasticSearch简介
    Lucene查询索引
    Lucene索引维护(添加、修改、删除)
    Lucene使用IKAnalyzer分词
    Lucene搜索引擎入门
    MySQL优化(四)——读写分离
    MySQL优化(三)——主从复制
    Java 身份证验证工具类代码模板
  • 原文地址:https://www.cnblogs.com/caoyc/p/5582925.html
Copyright © 2020-2023  润新知