zoukankan      html  css  js  c++  java
  • action类中属性驱动和模型驱动的区别

    1.Struts2的属性驱动

    在Action类中,属性××通过get××()和set××()方法,把参数在整个生命周期内进行传递,这就是属性驱动

    代码如下:

    package org.abu.csdn.action.user;

    import com.opensymphony.xwork2.ActionSupport;

    public class RegisterAction extends ActionSupport {  //首先类RegisterAction 必须继承ActionSupport 

        private String uname;


        public String getUname() {

            return uname;
        }

        public void setUname(String uname) {
            this.uname = uname;
        }

        @Override
        public String execute() throws Exception {    //重写execute() 方法执行Action动作
            return ActionSupport.SUCCESS;
        }

        public void validate(){  //重写validate()方法

    if(uname==null || uname.trim().length()==0){

        this.addFieldError("uname","用户名不能为空");  //重写addFieldError()方法来进行错误处理

    }

        }

    }

    2.Struts2的模型驱动

    把用户请求参数封装到一个javabean中,Action中使用一个独立的modle实例来封装用户的请求参数和处理结果,action完成业务逻辑调度,使用2个类来分解action任务,这就是模型驱动。

    注意:使用模型驱动时,在继承ActionSupport类或者实现action接口时,必须实现一个ModelDriver接口,该接口的作用建立一个Model对象来代替Action本身把数据存入ValueStack

    代码如下:

     //把用户请求参数封装到User中

    public class User { 

        private String uname;
        public String getUname() {

            return uname;
        }

        public void setUname(String uname) {
            this.uname = uname;
        } 

    }

    //Action中使用一个独立的RegisterAction(){}实例来封装用户的请求参数和处理结果
    package org.abu.csdn.action.user;

    import org.abu.csdn.dto.User;

    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;

    public class RegisterAction extends ActionSupport implements ModelDriven<User> {//实现ModelDriver接口,该接口的作用建立一个Model对象来代替Action本身把数据存入ValueStackAc。

    //<User>: 在这里引入student类

        private User user=new User();
        public User getModel() {// 模型驱动必须实现的方法,也是ModelDriven接口中唯一的方法       

            return user;
        }

       public RegisterAction(){

    getModel() .setUname("Marry") ;

       }

       

       public String oneNewRegister(){

    getModel() .setUname("Danny") ;

       }

        @Override
        public String execute() throws Exception {  //重写execute() 方法执行Action动作      
            return  SUCCESS;
        }

        public void validate(){  //重写validate()方法

    if(user.getUname() ==null || user.getUname() .trim().length()==0){

        this.addFieldError("uname","用户名不能为空");  //重写addFieldError()方法来进行错误处理

    }

        }

    }

     
     
  • 相关阅读:
    实验4-2-4 换硬币 (20分)
    实验4-1-4 求整数的位数及各位数字之和 (15分)
    实验4-1-10 兔子繁衍问题 (15分)
    实验4-1-7 特殊a串数列求和 (20分)
    实验4-1-3 找出最小值 (20分)
    实验4-1-2 求奇数和 (15分)
    实验4-1-1 最大公约数和最小公倍数 (15分)emmm辗转相除法
    实验3-10 高速公路超速处罚 (15分)
    1.使用Lucene开发自己的搜索引擎--倒排索引基础知识
    办公自动化项目从无到有-第三篇系统管理模块
  • 原文地址:https://www.cnblogs.com/LWMLWM/p/7590664.html
Copyright © 2011-2022 走看看