Struts2 和 SpingMVC 前端接收参数对比

首先说明一点: domainModel 和 pojo 是一个东西  。 一个是Struts2 的叫法,一个是SpringMVC的叫法。

思想都是MVC,M:就是实体类,用来传递前端的参数,前端接收到参数,存入pojo,然后在dao层再取出来,操作数据库。

                                jsp的input标签的name值和pojo变量值名需一样。

                         V:就是页面 jsp

                         C: 就是 controller (SpringMVC) 和 action (Struts2)

SpringMVC接收参数 :直接 把pojo 作为形参,当然pojo中要写get、set方法。

       @RequestMap("/test")

    public String test(User user){

            return "useradd";

    }

Struts2 接收参数:

    1、 在action中 声明 全局变量。且生成get、set方法

      String  name;

      String gender;

      getXXX()   

      setXXX()

      然后再把 成员变量 set进 domainModel 中,domainModel 作为值参数的容器进行传递。

       或者放入一个 map 集合中也可以。 然后dao层通过 get(key)拿value 再用。

   2、在action 中 声明全局变量,但这次的全局变量是 domainModel 。且生成get、set方法。

        User user ;

         getUser(){}

         setUser(){}

       

       domainModel 中 也要生成成员变量的get、set方法

        如    Class User{

                        

                  String  name;

                  String gender;

                  getXXX()   

                  setXXX()

                }

          jsp 传参的时候 就是  user.name=xxx&user.gender=xxx

    3、注册页面一般都有确认密码这一项,但是从逻辑上来说,我们的domainModel中应该只有 String name 和 String pwd

         所以这是需要 引出 一个DTO的概念,DTO代替了domainModel 接前端参数的这个工作。而domainModel 只负责从               service层到dao层 参数值的传递。也就是说显示DTO从前端把值拿过来,在service层再将DTO的一部分成员变量的值传 递给domainModel ,domainModel 再拿着这些数据 去dao层。

            

        4、(1)Action implements ModelDriven<User>(这里最好用泛型指明,否则getModel需要强制类型转换) 

             (2)new 一个 domainModel

             如:   User user = new User();

             (3)重写 getModel 方法

               @Override

                   public User getModel(){

                       return user;

                     }

              (4)User 中 需要写get、set 方法

              (5)jsp 页面 传参 : name=xxx&pwd=xxx  (注意这里和第二种情况jsp页面传参的对比)

                 



    

        

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值