SSM中,返回值为ModelAndView时,向前端返回数据的方法

 ModelAndView是什么?它主要用来干什么?

简单的理解就是在Controller层中将后台数据传递给前端。那么怎么传呢?我们就要依靠这个ModelAndView来进行传递。

那么ModelAndView具体是怎么将后台数据传递给前端的呢?下面分别用3种方法进行演示。

Controller层中的代码:

@Controller
public class TestController {
   
    @RequestMapping(value = "/itemlist.action")
    public ModelAndView toEdit(Integer id,
			HttpServletRequest request,HttpServletResponse response
			,HttpSession session,Model model){

//方法一:创建ModelAndView对象,再通过它的方法去设置数据和转发指定到的视图名

        //根据前端传递过来的id,来通过sql语句查询数据
		Items items = itemService.selectItemsById(id);

        //新建一个ModelAndView对象
		ModelAndView modelandview = new ModelAndView();
		//将查询的数据放入到ModelAndView对象中
                             //"itemList":为别名,在前端页面上使用
                             //items:执行sql语句查询到的数据
		modelandview.addObject("itemList", items);
                                     
        //指定视图,也就是把查询的数据放到前端的哪个页面上去
                               //"itemList":指定到名为这个的视图上
		modelandview.setViewName("itemList");
		return modelandview;


//方法二:在创建一个ModelAndView对象后,可以直接通过带有参数的构造方法 ModelAndView(String viewName, String attributeName, Object attributeValue) 来返回数据与转发的视图名
        
              //根据前端传递过来的id,来通过sql语句查询数据
		Items items = itemService.selectItemsById(id);

                return new ModelAndView("itemList","itemList", items);

      //简单的理解就是此种方法相当于是在方法一的基础上做了修改,省略了addObject( )和setViewName( )的方法。



//方法三:在创建一个ModelAndView对象后,使用重定向指定展示的视图页面

		 //根据前端传递过来的id,来通过sql语句查询数据
		Items items = itemService.selectItemsById(id);

                 return new ModelAndView(redirect:/itemlist.action);


	}
    
}

如果使用ModelAndView进行后台向前端传递数据,上面三种方法任选其一。

传递到前端页面 itemList.jsp代码:

查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
商品列表:
<table width="100%" border=1>
<tr>
	<td>商品名称</td>
	<td>商品价格</td>
	<td>生产日期</td>
	<td>商品描述</td>
	<td>操作</td>
</tr>
<%-- 将后台传递过来的数据进行遍历 --%>
<c:forEach items="${itemList }" var="item">
<tr>
	<td>${item.name }</td>
	<td>${item.price }</td>
	<td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
	<td>${item.detail }</td>
	<td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td>

</tr>
</c:forEach>

</table>
</form>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/MyBloggerlxs/article/details/81583005
今日推荐