zoukankan      html  css  js  c++  java
  • 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>

      

     

  • 相关阅读:
    用代码操作文件(文件夹)
    文件上传
    用ajax、PHP、session做购物车
    ajax返回数据类型为JSON数据的处理
    Hadoop机架感知
    Linux 克隆虚拟机以及克隆之后引起的“Device eth0 does not seem to be present, delaying initialization”问题解决
    克隆之后一键修改IP、删除Mac地址、修改主机名(未测试成功只是思路)
    关于Hadoop的杂乱无章(续更)
    使用CentOS6.8搭建Hadoop集群
    CentOS6.8卸载与安装yum
  • 原文地址:https://www.cnblogs.com/caoyc/p/5582925.html
Copyright © 2011-2022 走看看