在SpringMVC中将view的数据封装成Model的方法

 以登录为例,jsp中有name和pass变量,现在有一个Model为User定义如下:
public class User {
    private String name;  
    private String pass; 

    public String getName(){
     return name;
    }
    public void setName(String name){
     this.name = name;
    }
    public String getPass(){
     return pass;
    }
    public void setPass(String pass){
     this.pass = pass;
    }
}

    1.在Controller中收到请求用servlet请求的方式得到value的方法如下:
public String login (HttpServletRequest request, ModelMap modelMap) {
   String name =  request.getParameter("name");
   String pass =  request.getParameter("pass");
}
然后通过自己写代码生成对象User user = new User ();
                                                     user.setName(name);
                                                     user.setPass(pass);
    通过1的方法虽然能实现获得User实例,但是失去了Springmvc工厂模式的优势了,SpringMVC框架自身就能来做生成实例的事情,1中的方法显然没有充分应用SpringMVC框架。

    2.利用SpringMVC的功能,将view中的数据封装到Model中:
    由于项目紧急,精力有限笔者没有从SpringMVC底层深入剖析,根据笔者实际的工作经验,要将view中的数据封装到Model中需要进行下面四步准备工作:
   a.  User类必须有一个不包含任何参数的默认构造函数
   b. User类必须有一个给所有成员变量赋值的构造函数
   c. User类中的属性名字和表单中的输入控件的名称一样
   d. User类中的各属性必须有默认的getter、setter方法
    Controller中的具体写法如下:
     public String login (User user) {
    String name = user.getName();
    String password = user.getPass();
}
这样框架就自动生成了user实例并赋给了函数参数。
    model具体写法如下:
public class User {
    private String name;  
    private String pass; 
    public User(){}
    public User(String name,String pass){
     super(); 
     this.name = name;
     this.pass = pass;
    }
    public String getName(){
     return name;
    }
    public void setName(String name){
     this.name = name;
    }
    public String getPass(){
     return pass;
    }
    public void setPass(String pass){
     this.pass = pass;
    }
}

通过上面方法2就可以将view中的数据封装在bean中,大大简化了不少赋值的工作,传值传对象还能让代码简洁。

将Controller中从dao中查询到的数据封装到Model中并将Model传递到view中的方法见下篇博客。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值