龙空技术网

Spring MVC中ModelAndView的用法

汇智知了堂 82

前言:

当前同学们对“springmvc读取图片到前端显示”都比较重视,大家都想要分析一些“springmvc读取图片到前端显示”的相关资讯。那么小编在网络上汇集了一些对于“springmvc读取图片到前端显示””的相关知识,希望咱们能喜欢,姐妹们快快来学习一下吧!

通过前面两篇文章(Spring MVC入门、Spring MVC中@RequestMapping用法)我们已经学习到SpringMVC框架快速搭建和@RequestMapping注解的用法,今天我们来介绍一下SpringMVC框架中的ModelAndView。我个人理解对于快速入门SpringMVC可以按照如下思路学习

SpringMVC框架环境快速搭建@RequestMapping的用法ModelAndView的用法整合Spring+SpringMVC+MyBatis然后在学习SpringMVC框架高级部分1. ModelAndView是什么以及它的作用是什么简单理解它是将后台返回的数据传递给View层,同时包含一个要访问的View层的URL地址当控制器处理完请求后,通常控制器会将包含视图名称以及一些模型属性的ModelAndView对象返回给DispatcherServlet。因此,在控制器中会构造一个ModelAndView对象ModelAndView作用设置转向地址将底层获取的数据进行存储(或者封装)最后将数据传递给View

2. ModelAndView的第一种用法

先创建ModelAndView对象,再通过它的方法去设置数据与转发的视图名

package com.zlt.spmvc.controller;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import com.zlt.spmvc.entity.Student;/** * SpringMVC的控制器(业务控制器) * 定义的方法就是一个请求处理的方法 * @author caleb * */@Controller@RequestMapping("/user")public class TestController {        /**     * 利用ModelAndView来转发数据,给前端视图     * @return     */    @RequestMapping("/m06")    public ModelAndView m06() {        ModelAndView modelAndView = new ModelAndView();        modelAndView.setViewName("m06");        modelAndView.addObject("message", "Hello World, Hello Kitty");        return modelAndView;    }    }
setViewName(String viewName):Set a view name for this ModelAndView, to be resolved by the DispatcherServlet via a ViewResolveraddObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据3. ModelAndView的第二种方法

可以直接通过带有参数的构造方法 ModelAndView(String viewName, String attributeName, Object attributeValue) 来返回数据与转发的视图名

package com.zlt.spmvc.controller;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import com.zlt.spmvc.entity.Student;/** * SpringMVC的控制器(业务控制器) * 定义的方法就是一个请求处理的方法 * @author caleb * */@Controller@RequestMapping("/user")public class TestController {        /**     * 利用ModelAndView来转发数据,给前端视图     * @return     */    @RequestMapping("/m07")    public ModelAndView m07() {        return new ModelAndView("m07", "message", "Hello World");    }    }

4. ModelAndView的第三种用法

设置重定向

package com.zlt.spmvc.controller;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import com.zlt.spmvc.entity.Student;/** * SpringMVC的控制器(业务控制器) * 定义的方法就是一个请求处理的方法 * @author caleb * */@Controller@RequestMapping("/user")public class TestController {        /**     * ModelAndView默认转发     * ModelAndView还是可以设置重定向     * 1. 重定向另一个控制器     * 2. 重定向具体的jsp页面     * @param name     * @return     */    @RequestMapping("/{name}/m07")    public ModelAndView m07(@PathVariable String name) {        if (!"admin".equals(name)) {            return new ModelAndView("redirect:/m07.jsp");        }        return new ModelAndView("m07");    }    }

本系列教程源码下载欢迎私聊获取~

标签: #springmvc读取图片到前端显示