如何进行SpringMVC中ModelAndView的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。
因此,经常需要在控制器中构造ModelAndView对象。ModelAndView类提供了几个重载的构造器和一些方便的方法,
让你可以根据自己的喜好来构造ModelAndView对象。这些构造器和方法以类似的方式支持视图名称和视图对象。
当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndView对象
@Controller
public class Login {
@RequestMapping(value=https://www.yisu.com/zixun/"login"
public ModelAndView login(){
ModelAndView mav = new ModelAndView();
mav.setViewName("welcome"); //返回的文件名
mav.addObject("message","hello kitty");
//List
Listlist = new ArrayList ();
list.add("java");
list.add("c++");
list.add("oracle");
mav.addObject("bookList", list);
//Map
Mapmap = new HashMap ();
map.put("zhangsan", "北京");
map.put("lisi", "上海");
map.put("wangwu", "深圳");
mav.addObject("map",map);
return mav;
}
}
1、使用ModelAndView作为返回值,首先在方法头中进行声明:
public ModelAndView getNameById(HttpServletRequestrequest,HttpServletResponse response) throws Exception{}
2、然后在方法体中实例化ModelAndView
ModelAndViewmv=this.getAutoView () .addObject (“object"、对象);
3,最后在方法中的末尾加上returnmv;
,那么mv中的值是什么呢?
ModelAndView:引用视图与名字# 39;/officeoa/测试/bjqGetNameById.jsp& # 39;;模型是{bjq=com.hotent.officeoa.model.test.Bjq@1d001c5c [id=10000007960011, name=课本,密码=12 ab,部门=测试3 departmentID=⒘煨?22222,leaderID=]}
解析:mv中有一个角度值和一个模型值。
,,,,,看来是我们条转到的页面的地址,模型则是页面中会用到的数据
给ModelAndView实例设置视图的方法有两个:setViewName (StringviewName)和setView(查看视图)。前者是使用viewName,后者是使用预先构造好的观点对象。其中前者比较常用。事实上视图是一个接口,而不是一个可以构造的具体类,我们只能通过其他途径来获取视图的实例。对于viewName,它既可以是jsp的名字,也可以是瓷砖定义的名字,取决于使用的ViewNameResolver,而对应如何给ModelAndView实例设置模型则比较复杂。有三个方法可以使用:
addObject(对象modelObject);
addObject(字符串modelName ObjectmodelObject);
addAllObjects(地图modelMap);
ModelAndView对象有两个作用,,
作用一设置转向地址,如下所示(这也是ModelAndView和modelMap的主要区别),
=newModelAndView ModelAndView视图(“路径:ok");,
作用二用于传递控制方法处理结果数据到结果页面,也就是说我们把需要在结果页面上需要的数据放到ModelAndView对象中即可,他的作用类似于请求对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:,
addObject(字符串键,对象的价值);,
关于如何进行SpringMVC中ModelAndView的分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。