zoukankan      html  css  js  c++  java
  • 【代码总结】Struts2 Action接受参数方式的对比

    一、属性方式

    1、Action中:对应表单参数的setter、getter

    2、页面中  :Form中元素name取值属性名

      <s:property value="属性名" />

    3、应用场景:接受的参数字段个数比较少

    package com.struts.action;
    
    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 login(){
            if("admin".equals(username) && "123456".equals(password)){
                return "success";
            }else{
                return  "failed";
            }
    
        }
    }

    二、JavaBean方式

    1、Action中:为Action添加实体属性以及setter和getter

    2、页面中  :Form中元素name取值属性名

      <s:property value="对象名.属性名" />

    3、应用场景:字段多,可以封装为一个对象;将模型数据从Action中分离,创建model层

    package com.struts.action;
    
    import com.struts.model.User;
    
    public class Login2Action {
        private User user;
        public String login(){
            if("admin".equals(user.getUsername()) && "123456".equals(user.getPassword())){
                return "success";
            }else{
                return  "failed";
            }
        }
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    }

    三、ModelDriven方式

    1、Action中:Action实现ModelDriven接口,重写方法getModel();Action中药提供JavaBean类型的属性,西药实例化,但不需要对应的setter和getter方法

    2、页面中  :Form中元素name取值属性名

      <s:property value="属性名" />

    3、应用场景:和JavaBean类似,但不常用

    package com.struts.action;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ModelDriven;
    import com.struts.model.User;
    
    public class Login3Action implements ModelDriven<User>{
        private User user;
        @Override
        public User getModel() {
            if(user == null){
                user = new User();
            }
            return user;
        }
        public String login(){
            if("admin".equals(user.getUsername()) && "123456".equals(user.getPassword())){
                ActionContext.getContext().getSession().put("user",user);
                return "success";
            }else{
                return  "failed";
            }
        }
    }
  • 相关阅读:
    关于自学的又一点思考
    hdu 1176 免费馅饼
    AS400 Sequel View报表学习笔记 (一)
    AS400 QUERY中的Unmatched records探讨。
    AS400 SDA development Note (1)
    关于Actionscript 3.0中KeyboardEvent的调试需注意的问题
    iPhone开发的常用的API函数库
    Cocos2DiPhone编程中按钮的设置(MenueItem类系的介绍)
    维基网上公布的世界上的一些算法<希望能对寻找算法的一些朋友有帮助>
    关于面向对象编程与面向过程编程的介绍与解释
  • 原文地址:https://www.cnblogs.com/sqyysec/p/8525174.html
Copyright © 2011-2022 走看看