您的位置:首页 > 编程语言 > Java开发

JavaEE_Mybatis_SpringMVC_SpringMVC_SpringMVC的Model中数据的作用域(位置)

2015-12-08 20:25 597 查看
在学习SpringMVC中遇到Model 和 HttpServletRequst 数据放置的位置,对数据放置的位置比较困惑,写了以下的测试

本例通过HttpServletRequst 和 Model 中设置数据的两种,并redirect 到一个controller 比较两种方法是否都能接收到数据

测试代码

import cn.itcast.ssm.po.ItemsEx;
import cn.itcast.ssm.po.ItemsExVo;
import cn.itcast.ssm.service.ItemsService;

//限制Http请求方法
//@RequestMapping(value = "/items", method = { RequestMethod.POST,RequestMethod.GET })
@Controller
@RequestMapping(value = "/items", method = { RequestMethod.POST,
RequestMethod.GET })
public class ItemsController {

@Autowired
ItemsService itemsService;
// 形参为Model, 返回值为String的ModeAndView的Controller
@RequestMapping("/queryItems")
public String queryItems(Model model, HttpServletRequest request,
HttpServletResponse response) throws Exception {

System.out.println(request.getParameter("its"));
System.out.println(request.getParameter("itss"));

ItemsEx itemsEx = new ItemsEx();
// itemsEx.setName("本");
// itemsEx.setPrice(20.0f);
ItemsExVo itemsExVo = new ItemsExVo();
itemsExVo.setItemsEx(itemsEx);
List<ItemsEx> itemsList = itemsService.findItemsExList(itemsExVo);

model.addAttribute("itemsList", itemsList);

return "items/itemsList";
}
// 返回String,利用redirect:queryItems.action,进行redirect进行跳转的形式
@RequestMapping("/editItemsSubmit")
public String editItemSubmit(Model model, HttpServletRequest request)
throws Exception {
// 调用service更新商品信息。页面需要将商品信息传到此方法中
// ...

// 相当于HttpServletRequest中的redirect方法,地址栏的信息不会发生变化
// 如此例中变为http://localhost:8080/Web_SSM_test/items/queryItems.action
model.addAttribute("its", 1);
request.setAttribute("itss", 2);
return "redirect:queryItems.action";
}

}


测试结果

 


通过以上结果:

可以看出Model中的数据应该不是放置在request 域中。而HttpServletRequest 的数据应该是放置在request 域中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: