`
jafisher
  • 浏览: 55715 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

modelAndView在sping MVC框架下的使用

阅读更多
    在 spring 框架的控制器中,我们经常在事件处理时想返回处理对象和实现重定向跳转,平时可能经常是在 control 里直接返回对象甚至是String,但如果是多个对象的话或者还需要重定向的话就麻烦了,使用 modelAndView 就可以变得非常轻松。
    modelAndView 表示的就是 MVC模式中的 model 和 view,方便一次返回我们想要的 model 和 view 对象,它有7种构造方法,方便我们处理。如下代码:

    
    Result result = testService.service();
    ModelAndView mav = new ModelAndView();
    mav.setViewName("/test");
    mav.addObject(result);


    使用 setViewName 方法设置 view 对象,相对路径是从服务器的网页根目录开始寻找的,即我们经常使用的WEB-INF/views目录,而非程序的根目录。
    ModelAndView 对象实例化后不能直接使用,因为它必须指定 view,否则它不知道要定向到哪个页面,返回的 model 也无法获取,而 model 是可选的。返回 view 对象有两种方法,setViewName 和 setView,一个是直接传入 view 对象的地址,一个是 view 对象本身,对象本身需要在之前进行实例化。
    非常值得注意的是,addObject重现了两个方法,addObject(result) 和 addObject("resultName", result),即可以对 model 指定命名,在页面对 model 进行处理时,如果指定了命名,则可以直接调用resultName,如果没有指定,系统会去判断 result 对象的类型,根据类型匹配到的类再取该类的实例化对象,根据此对象去调用参数,而非传入的 result 对象,举个例子:

    public class Result {
        private String code;
    }

    Result re = testService.service();
    ModelAndView mav = new ModelAndView();
    mav.setViewName("/test");
    mav.addObject(re);


    此时不指定 addObject 参数的命名,在页面调用时如果使用 re.code 会得不到值,因为 modelAndView 对象将 model 加载到页面后会转化成对应类的对象,页面无法识别 re,因此只能使用 result.code。如果使用命名就避免了这个问题:mav.addObject("re", re);
    通过使用多个 addObject 方法,modelAndView 对象可以把更多的 model 返回页面处理。
    使用过程中的一点小小理解。
分享到:
评论

相关推荐

    springmvc关于modelAndView的使用详细

    关于springmvc中的ModelAndView的详细代码,可以更好的了解spring。

    Spring+Mybatis框架 ModelAndView

    Spring+Mybatis框架 ModelAndView 例子

    spring3.0_mvc框架_05_相关注解的用法_ModelAndView的用法_请求转发和重定向_方法返回值处理.flv

    这里是我自学 springmvc 框架的基本教程,按照这个教程可以轻松的掌握SpringMvc的搭建和使用,同时下一步本人会将 SpringMVC和数据库操作集成学习也进行分项,本次学习共八节,这里是第五节。 剩余章节,后续更新

    spring3.0_mvc框架_04_内部实现机制_handlemapping_viewresolver_modelandView.flv

    这里是我自学 springmvc 框架的基本教程,按照这个教程可以轻松的掌握SpringMvc的搭建和使用,同时下一步本人会将 SpringMVC和数据库操作集成学习也进行分项,本次学习共八节,这里是第四节。 剩余章节,后续更新

    Spring ModelAndView

    Spring mvc ModelAndView Serviceresponse ibatis

    Spring MVC 3.0实战指南.ppt

    1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7、其它 目录: Spring MVC 3.0新特性 Spring MVC框架结构 Spring MVC框架结构 框架...

    Spring3MVC注解教程.ppt

    1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7、其它 目录: Spring MVC 3.0新特性 Spring MVC框架结构 Spring MVC...

    SSM框架测试题以及答案解析.docx

    ModelAndView中的模型书不是必须的,根据实际情况决定,如果视图需要数据则可以在ModelAndView添加模型数据  6.下列关于@RequestParam绑定请求参数值的说法正确的是()。  (选择一项)  A: Controller方法入参时...

    浅谈js获取ModelAndView值的问题

    一定要在JSP页面中才能接收吗? 1 方法一 【有效】 可以的,跟el表达式访问方式一样。 示例代码,一个数据展示请求的Action中存入一个userId: @RequestMapping(value="/diary") public ModelAndView toDiaryList...

    springmvc demo

    即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 Spring Web MVC也是服务到工作者模式的...

    springmvc:@Controller @RequestMapping @RequestParam,模型和ModelAndView Spring MVC实践

    弹簧 @Controller @RequestMapping @RequestParam,模型和ModelAndView Spring MVC实践

    使用SpringMVC的ModelAndView.zip

    本博客https://blog.csdn.net/qq_40634846有零基础入门SpringMVC,有兴趣的朋友可关注本博客

    Spring MVC 员工管理系统

    和众多其它Web框架一样,它基于MVC设计理念,此外,由于它采用了松散耦合可插拔组件结构,具有比其它MVC框架更多的扩展性和灵活性。 Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet的作用是...

    基于框架的Web开发-处理数据模型、转发和重定向.docx

    将模型数据暴露给视图是spring MVC框架的一项重要工作,它提供了多种途径输出模型数据。 1 ModelAndView 如果控制器的处理方法返回的是ModelAndView对象,方法体可以向这个对象中添加模型数据和视图。例如之前的例子...

    spring mvc 思维导图

    Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。...

    零配置Struts框架 的一个全新框架

    现需要开发LMVC前台标签库.望愿意开发框架的爱好都能加入群:41229007 零配置Struts框架 action拦截器 自定义ModelAndView 框架开发 提供了参考手册,LMVCDemo project.上手非常快 ...

    Spring MVC 入门实例

    这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...

    SpringMVC ModelAndView-2021-04-11.txt

    SpringMVC将服务器处理后的结果返回并带给浏览器

    springmvc的一个简单实例

    spring的mvc应用的简单实例 package com.spring.mvc.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype....

    ssh2框架下多表查询的单个模块开发

    基于ssh2框架下多表查询的单个模块开发。其中的页面跳转是通过MVC中的ModelandView实现的。

Global site tag (gtag.js) - Google Analytics