欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Spring MVC数据绑定和响应——页面跳转(三)返回值为ModelAndView类型的页面跳转

Spring MVC数据绑定和响应——页面跳转(三)返回值为ModelAndView类型的页面跳转

2024/10/24 13:21:28 来源:https://blog.csdn.net/W_Fe5/article/details/139904665  浏览:    关键词:Spring MVC数据绑定和响应——页面跳转(三)返回值为ModelAndView类型的页面跳转

一、ModelAndView对象组成部分

        使用方法的返回值可以设定跳转的逻辑视图名称,使用Model等对象实现页面跳转时传输数据。除此之外,Spring MVC还提供了兼顾视图和数据的对象ModelAndView,ModelAndView对象包含视图相关内容和模型数据两部分,其中视图相关的内容可以设置逻辑视图的名称,也可以设置具体的View实例;模型数据则会在视图渲染过程中被合并到最终的视图输出。

二、ModelAndView设置视图和数据模型的方法

方法声明

功能描述

void setViewName(String viewName)

为ModelAndView设置一个视图名,会覆盖预先存在的视图名称或视图

void setView(View view)

为ModelAndView设置一个视图,会覆盖预先存在的视图名称或视图

ModelAndView addObject(Object attributeValue)

向ModelAndView的数据模型中添加数据

ModelAndView addObject(String attributeName, Object attributeValue)

向ModelAndView的数据模型中添加指定名称的数据

ModelAndView addAllObjects

(Map<String, ?> modelMap)

向ModelAndView的数据模型中添加数据。数据名称为Map中的元素的key,数据的值为Map中key对应的值

三、ModelAndView方法说明

        setViewName()方法和setView()方法都是为ModelAndView对象设置视图的方法,其中前者使用更方便,因此setViewName()方法比较常用。后3个方法都是向ModelAndView对象中添加模型数据的,其中addObject(Object attributeValue)方法添加的attributeValue,默认名称为attributeValue类型全限定名的最后一个单词且首字母小写;addObject(String attributeName, Object attributeValue)方法可以在页面上以${attributeName}方式取出attributeValue。

接下来通过一个案例演示返回值为ModelAndView类型的页面跳转,案例具体实现步骤如下。

1、修改文件PageController.java,新增showModelAndView()方法,在showModelAndView()方法中使用ModelAndView封装数据和视图,完成页面跳转时传递数据。

@RequestMapping("/showModelAndView")
public ModelAndView showModelAndView() {ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("username","test");User user = new User();	user.setPassword("password");modelAndView.addObject("user",user);modelAndView.setViewName("register");return modelAndView;
}

        2、启动chapter12项目,在浏览器中访问地址http://localhost:8080/chapter12/showModelAndView。访问后,浏览器页面进行跳转。访问地址后执行了showModelAndView()方法,方法执行后,添加的模型数据都在register.jsp页面成功取出。  

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com