Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)
Posted 张梦源
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)相关的知识,希望对你有一定的参考价值。
1.转发之间传递域对象用HttpServletRequest当中的request.setAttribute();
2.重定向之间传递域对象用HttpSession当中的session.setAttribute(name, value);
/*
*
* 在SpringMVC中如何传递数据到JSP页面上:
*
* 1)常规的返回视图(String、void),在方法中绑定HttpServletRequest对象,通过request域对象传递数据
* setAttribute-->request的用request.setAttribute("","");
* -->resposer的用session.SetAttribute("","");
*
* 2)返回ModelAndView实例,创建ModelAndView实例,设置其视图名和数据Model
* addObject
*
* 3)常规的返回视图(String、void),在方法中绑定Model或者ModelMap(实际是SpringMVC创建了BindingAwareModelMap对象),通过该对象传递数据
* addAttribute
*
*/
1.常规的返回视图(String、void)
@GetMapping("/booklist")
public String goToBooklist(HttpServletRequest request)
List<Book> books = bookservice.queryAll();
request.setAttribute("booklist", books);
return "manager/booklist";
//这个时候我就把从数据库当中所查询到的books集合的数据
//作为域对象传递到了manager/booklist 经过视图解析器的后的页面
2.返回ModelAndView实例
@GetMapping("/booklist")
public ModelAndView goToBookListModelAndView()
ModelAndView mv=new ModelAndView();
List<Book> books = bookservice.queryAll();
mv.setViewName("manager/booklist");
mv.addObject("booklist", books);
return mv;
//对应的进行访问的index.jsp转发代码是
<div class="right w-80">
<iframe style="width:99%; height:600px; border:1px; background-color: #DDD;" name="frm"
src="$pageContext.request.contextPath/manager/booklist"></iframe>
</div>
//对应的servlet接收的booklist.jsp为
<table>
<tr>
<th>序号</th><th>书名</th><th>作者</th><th>分类</th><th>价格</th><th>出版社</th><th>出版时间</th><th>库存</th><th>操作</th>
</tr>
<c:forEach items="$booklist" var="book" varStatus="stat">
<tr>
<td>$stat.count</td>
<td>$book.name </td>
<td>$book.author </td>
<td>$book.category </td>
<td>$book.price </td>
<td>$book.publisher </td>
<td>$book.publishdate </td>
<td>$book.count </td>
<td class="op"><a href=" ">删除</a> <a href=" ">修改</a></td>
</tr>
</c:forEach>
</table>
3. 常规的返回视图(String、void),在方法中绑定Model或者ModelMap
@GetMapping("/booklist")
public String goToBookListByModelMethod(ModelMap mm)
List<Book> books = bookservice.queryAll();
mm.addAttribute("booklist", books);
return "manager/booklist";
总结:就是一个域对象的问题。
以上是关于Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)的主要内容,如果未能解决你的问题,请参考以下文章
Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)
Spring 控制器方法的返回值类型ModelAndView当中页面当中数据的传输(通过转发和重定向)