SpringMVC @Controller处理器函数的默认参数类型

1.1.1. 默认支持的参数类型

处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值。

1.1.1.1. HttpServletRequest

通过request对象获取请求信息

1.1.1.2. HttpServletResponse

通过response处理响应信息

1.1.1.3. HttpSession

通过session对象得到session中存放的对象

 

1.1.2. Model/ModelMap

1.1.2.1. Model

除了ModelAndView以外,还可以使用Model来向页面传递数据,

Model是一个接口,在参数里直接声明model即可。

 

如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。

不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。

代码实现:

/**

 * 根据id查询商品,使用Model

 *

 * @param request

 * @param model

 * @return

 */

@RequestMapping("/itemEdit")

public String queryItemById(HttpServletRequest request, Model model) {

// 从request中获取请求参数

String strId = request.getParameter("id");

Integer id = Integer.valueOf(strId);

 

// 根据id查询商品数据

Item item = this.itemService.queryItemById(id);

 

// 把结果传递给页面

// ModelAndView modelAndView = new ModelAndView();

// 把商品数据放在模型中

// modelAndView.addObject("item", item);

// 设置逻辑视图

// modelAndView.setViewName("itemEdit");

 

// 把商品数据放在模型中

model.addAttribute("item", item);

 

return "itemEdit";

}

 

1.1.2.2. ModelMap

ModelMapModel接口的实现类,也可以通过ModelMap向页面传递数据

 

使用ModelModelMap的效果一样,如果直接使用Modelspringmvc会实例化ModelMap

 

代码实现:

/**

 * 根据id查询商品,使用ModelMap

 *

 * @param request

 * @param model

 * @return

 */

@RequestMapping("/itemEdit")

public String queryItemById(HttpServletRequest request, ModelMap model) {

// 从request中获取请求参数

String strId = request.getParameter("id");

Integer id = Integer.valueOf(strId);

 

// 根据id查询商品数据

Item item = this.itemService.queryItemById(id);

 

// 把结果传递给页面

// ModelAndView modelAndView = new ModelAndView();

// 把商品数据放在模型中

// modelAndView.addObject("item", item);

// 设置逻辑视图

// modelAndView.setViewName("itemEdit");

 

// 把商品数据放在模型中

model.addAttribute("item", item);

 

return "itemEdit";

}

 

posted @ 2018-03-01 13:52  Mr.zzz  阅读(98)  评论(0编辑  收藏  举报