Controller的代码片段:
================================================
@RequestMapping(value = "/index",method = RequestMethod.GET)
public ModelAndView listAllBoards(){
ModelAndView view = new ModelAndView();
List<Board> boards = forumService.getAllBoards();
view.addObject("boards",boards);
view.setViewName( "/listAllBoards");
return view;
}
==========================================
我断点调试这个view里面是有boards属性的,说明和Service层无关。
单元测试代码片段:
===========================================
@Test
public void listAllBoards() throws Exception {
request.setRequestURI("/index");
request.setMethod("GET");
//调用控制器
ModelAndView view = handlerAdapter.handle(request, response, controller);
List<Board> boards = (List<Board>) request.getAttribute("boards"); //★
//验证结果boards
assertNotNull(view);
assertEquals("/listAllBoards",view.getViewName());
assertNotNull(boards);
assertThat(boards.size(),greaterThan(1));
=====================================
★处得到的boards是null值,断点调试request里面也是没有boards属性的
当我把★处的代码换成下面这行
List<Board> boards = (List<Board>) view.getModelMap().get("boards");
这时候boards是能得到的。不是说ModelAndView.addObject()相当于往request域里存这个值吗?那为什么request里面会没有这个值?初学Spring MVC,Any help would mean a lot
================================================
@RequestMapping(value = "/index",method = RequestMethod.GET)
public ModelAndView listAllBoards(){
ModelAndView view = new ModelAndView();
List<Board> boards = forumService.getAllBoards();
view.addObject("boards",boards);
view.setViewName( "/listAllBoards");
return view;
}
==========================================
我断点调试这个view里面是有boards属性的,说明和Service层无关。
单元测试代码片段:
===========================================
@Test
public void listAllBoards() throws Exception {
request.setRequestURI("/index");
request.setMethod("GET");
//调用控制器
ModelAndView view = handlerAdapter.handle(request, response, controller);
List<Board> boards = (List<Board>) request.getAttribute("boards"); //★
//验证结果boards
assertNotNull(view);
assertEquals("/listAllBoards",view.getViewName());
assertNotNull(boards);
assertThat(boards.size(),greaterThan(1));
=====================================
★处得到的boards是null值,断点调试request里面也是没有boards属性的
当我把★处的代码换成下面这行
List<Board> boards = (List<Board>) view.getModelMap().get("boards");
这时候boards是能得到的。不是说ModelAndView.addObject()相当于往request域里存这个值吗?那为什么request里面会没有这个值?初学Spring MVC,Any help would mean a lot
