一个ModelAttribute两个控制器

时间:2012-07-14 13:47:31

标签: spring-mvc

我想在我的两个不同页面中显示相同的记录列表

第一个控制器和JSP

public class Model1Controller{

....
....

@ModelAttribute("/myList")
public ModelAndView myMethod(){
   List<String> listOfRecords = new ArrayList<String>();
   listOfRecords.add("1");
   listOfRecords.add("2");

   ModelAndView mv = new ModelAndView();
   mv.addObject("listOfRecords", listOfRecords);

   return mv;
}

....
....
....

}

第一个JSP

<ul>
<c:forEach items="${listOfRecords}" var="items">
  <li${items}></li>
</c:forEach>
</ul>

第二个控制器和JSP

public class Model1Controller{

....
....

@ModelAttribute("/myList")
public ModelAndView myMethod(){
   List<String> listOfRecords = new ArrayList<String>();
   listOfRecords.add("1");
   listOfRecords.add("2");

   ModelAndView mv = new ModelAndView();
   mv.addObject("listOfRecords", listOfRecords);

   return mv;
}

....
....
....

}

第二个JSP

<ul>
<c:forEach items="${listOfRecords}" var="items">
  <li${items}></li>
</c:forEach>
</ul>

有没有办法在一个地方访问相同的modelattribute来访问

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您希望多个控制器可以使用相同的列表,请将其放在会话或应用程序上下文中。无论什么更合适。该模型是您要向Web视图公开的任何内容的请求的一部分,因此它不适用于多个请求或控制器。

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/ModelAttribute.html