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";
}

总结:就是一个域对象的问题。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值