之前学习的时候遇见过这个ModelAndView,但是一直不知道是什么意思,今天在项目里面遇到了,就理解下,加深自己的印象,以下内容均是本人对此理解,欢迎一起留言讨论。
首先ModelAndView 分为两部分:model和view。model负责的是从后面接收回来的参数,view就是视图就是指定的jsp页面。例如:ModelAndView mv = new ModelAndView(“test”); 所以当return mv的时候,其中view就是test.jsp页面。
ModelAndView mv = new ModelAndView("test");
mv.addObject("dd", "hellow"); //其中的"hellow"可以为从后面执行回来的数据。
页面接收值:${dd};
当返回其他类型的时候参考:
public ModelAndView login() {
System.out.println("MAVTest.java login()....");
ModelAndView mv = new ModelAndView();
mv.setViewName("welcome");
mv.addObject("msg", "hello kitty");
// List
List<String> list = new ArrayList<String>();
list.add("java");
list.add("c++");
list.add("oracle");
mv.addObject("bookList", list);
// Map
Map<String, String> map = new HashMap<String, String>();
map.put("zhangsan", "北京");
map.put("lisi", "上海");
map.put("wangwu", "深圳");
mv.addObject("map", map);
return mv;
}
页面上取值:
<body>
<!-- 输出普通字符 -->
${msg } <br/>
<!-- 输出List -->
<p>书籍列表</p>
<c:forEach items="${bookList}" var="node">
<c:out value="${node}"></c:out>
</c:forEach>
<br/>
<br/>
<!-- 输出Map -->
<c:forEach items="${map}" var="node">
姓名:<c:out value="${node.key}"></c:out>
住址:<c:out value="${node.value}"></c:out>
<br/>
</c:forEach>
</body>
注意:c标签所依赖的jar,jstl.jar,commons-el.jar,standard.jar
参考文章出处:https://www.cnblogs.com/Sunnor/p/6130380.html