当前位置: 代码迷 >> Java Web开发 >> Spring-mvc中Controller中的方法的参数为什么用Model不要request
  详细解决方案

Spring-mvc中Controller中的方法的参数为什么用Model不要request

热度:175   发布时间:2016-04-16 21:49:59.0
Spring-mvc中Controller中的方法的参数为什么用Model不用request
Spring-mvc中Controller中的方法的参数为什么用Model不用request
@Controller
@RequestMapping("/emp")
public class EmpController {
            @RequestMapping("/findEmp.do")
            public String find(Model model) {
                         //此处省略很多代码
                           return "cost/2";
            }
}
这里参数为什么不用ServletRequest  request而用Model  model,,,model对象绑定的数据最后不还是要绑定到request对象上吗?
干脆直接用request不好吗?为什么老师都用model
------解决思路----------------------
你传request,或者ModelMap也可以,没什么本质区别

只是这里传Model, 减少侵入性,更符合MVC的的设计思想
------解决思路----------------------
ServletRequest要和web容器耦合在一起,难以进行单元测试和复用
------解决思路----------------------

SpringMVC请求时候会按照:
     HTTP请求参数名=  命令/表单对象的属性名
     的规则自动绑定请求数据,支持“级联属性名”,自动进行基本类型数据转换。
 如果有个user类,只要页面表单属性和实体类名称对上,即可自动绑定到user对象上,这样的话方便取。
 估计你们老师觉得这样方便吧

  相关解决方案