SpringMvc根据返回值类型不同处理响应

目录

一、介绍

二、返回值为void

(1)控制层方法

三、返回值为String

(1)控制层

四、返回值为ModelAndView

(1)控制层方法

(2)jsp页面


一、介绍

我们可以通过控制器方法的返回值设置跳转的视图。控制器支持如void,String,ModelAndView类型。

二、返回值为void

返回值是void会跳转到名字是前缀(也就是你前面编写的视图解析器中的)+方法路径名+后缀的jsp页面

(1)控制层方法

java 复制代码
@RequestMapping("/test")
    public void t1(){
        System.out.println("hello!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    }

路径是test,方法执行完毕以后会跳转到test.jsp页面中(前提是配置好了视图解析器,不然可能会报错)

三、返回值为String

(1)控制层

此时跳转到的的是前缀+返回值+后缀的jsp页面。

html 复制代码
 @RequestMapping("/c2/h1")
    public String t2(){
        System.out.println("90");
        return "test";
    }

四、返回值为ModelAndView

该对象是SpringMvc提供的对象,它可以向request域设置数据并指定跳转的页面。该对象包含Model对象和View对象。

Model:向request域中设置数据。

View:指定跳转的页面

(1)控制层方法

java 复制代码
@RequestMapping("/c2/h1")
    public ModelAndView t3(){
        //创建ModelAndView对象
        ModelAndView modelAndView=new ModelAndView();
        //获取Model对象,本质上是一个Map
        Map<String,Object> model=modelAndView.getModel();
        //使用Model对象向request域设置数据
        model.put("name","大大大大大牛");
        //使用View对象设置跳转的路径为/test.jsp
        modelAndView.setViewName("test");
        return modelAndView;
    }

(2)jsp页面

html 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>request=${requestScope.name}</h1>
</body>
</html>

这里的${requestScope.name}是el表达式写法,所以在web.xml中要添加支持el表达式

html 复制代码
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
               http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">
</web-app>
相关推荐
Dola_Pan20 分钟前
Linux文件IO(二)-文件操作使用详解
java·linux·服务器
wang_book22 分钟前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab
AI原吾1 小时前
掌握Python-uinput:打造你的输入设备控制大师
开发语言·python·apython-uinput
机器视觉知识推荐、就业指导1 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
毕设木哥1 小时前
25届计算机专业毕设选题推荐-基于python的二手电子设备交易平台【源码+文档+讲解】
开发语言·python·计算机·django·毕业设计·课程设计·毕设
珞瑜·1 小时前
Matlab R2024B软件安装教程
开发语言·matlab
weixin_455446171 小时前
Python学习的主要知识框架
开发语言·python·学习
孤寂大仙v1 小时前
【C++】STL----list常见用法
开发语言·c++·list
蜗牛^^O^1 小时前
Docker和K8S
java·docker·kubernetes
她似晚风般温柔7892 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app