Spring MVC三种返回方式
spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。
下面一一进行说明:
1、ModelAndView
Java代码 收藏代码
@RequestMapping("/message")
public ModelAndView message(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("demo/message");
mav.addObject("msg", "okle");
return mav;
}
返回的逻辑视图名是 demo/message
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 , 使用addObject()设置需要返回的值。
2、Map
Java代码 收藏代码
@RequestMapping("/demo/show")
public Map<String, String> showMap() {
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
return map;
}
这个对应的逻辑视图名是demo/show,也就是请求url
在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。
3-1、String 指定返回的视图页面名称
注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。
这个是使用jackson直接输出的
例如:
Java代码 收藏代码
@RequestMapping("/hello")
@ResponseBody
public String helloWorld() {
return "Hello World";
}
上面的结果会将文本"Hello World "直接写到http响应流。
3-2、 如果方法没有被标注@ResponseBody,返回值就是视图名
Java代码 收藏代码
@RequestMapping("/welcome")
public String welcome() {
return "center";
}
对应的逻辑视图名为“center”,URL= prefix前缀+视图名称 +suffix后缀组成。
4、void 如果返回值为空,则响应的视图页面对应为访问地址
Java代码 收藏代码
@RequestMapping("/welcome")
public void welcome() {}
此例对应的逻辑视图名为"welcome"。
小结:
1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。
2.使用void,map,Model 时,返回对应的逻辑视图名称就是请求url,仍然遵循:prefix前缀+视图名称 +suffix后缀组成。
3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。
(以上内容大部分摘录网上并自己整理,具体摘录地址不记得,仅供自己学习与复习)
2017-08-042017-08-04
Spring MVC三种返回方式的更多相关文章
- django 模板语法和三种返回方式
模板 for循环 {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %} if语句 ...
- spring ioc三种注入方式
spring ioc三种注入方式 IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转 什么是控制反转? 控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术. 由容 ...
- Spring IOC 三种注入方式
1. 接口注入 2. setter注入 3. 构造器注入 对象与对象之间的关系可以简单的理解为对象之间的依赖关系:A类需要B类的一个实例来进行某些操作,比如在A类的方法中需要调用B类 ...
- Spring的三种注入方式(Setter、构造函数和自动注入)
一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...
- Spring bean三种创建方式
spring共提供了三种实例化bean的方式:构造器实例化(全类名,反射).工厂方法(静态工厂实例化 动态工厂实例化)和FactoryBean ,下面一一详解: 1.构造器实例化 City.jav ...
- Spring IOC三种注入方式(接口注入、setter注入、构造器注入)(摘抄)
IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转, Spring 框架的核心基于控制反转原理. 什么是控制反转?控制反转是一种将组件依赖关系的创建和管理置于程序外部的技 ...
- Spring IOC 三种注入方式(构造器,setter,接口)
Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是 ...
- spring的三种注入方式
接口注入(不推荐) 构造器注入(死的应用) getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class ClassA ...
- Spring事务-三种实现方式
一.引入JAR文件: 二.开始搭建分层架构---创建账户(Account)和股票(Stock)实体类 Account: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
随机推荐
- tp5实现Redis的简单使用
方法1: Controller <?php namespace app\index\controller; use think\Controller; use think\session\dri ...
- java同步锁实现方法
1.synchronized关键字修饰 当用此关键字修饰方法时, 内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就处于阻塞状态 synchronized关键字也可以修饰静态方法,此 ...
- Acwing-280-陪审团(背包dp?)
链接: https://www.acwing.com/problem/content/282/ 题意: 在一个遥远的国家,一名嫌疑犯是否有罪需要由陪审团来决定. 陪审团是由法官从公民中挑选的. 法官先 ...
- python连接mysql操作(1)
python连接mysql操作(1) import pymysql import pymysql.cursors # 连接数据库 connect = pymysql.Connect( host='10 ...
- 【JZOJ5439】【NOIP2017提高A组集训10.31】Calculate
题目 分析 对于\[\sum_{i=1}^{n}\lfloor\dfrac{T-B_i}{A_i}\rfloor\] 我们考虑拆开处理,得到 \[\sum_{i=1}^{n}(\lfloor\dfra ...
- uniapp开发微信小程序跳转出现navigateTo:fail page "pages/user/pages/user/address/address" is not found
在app.json文件中pages中: ,{ "path" : "pages/user/address/address", "style" ...
- 【leetcode】1272. Remove Interval
题目如下: Given a sorted list of disjoint intervals, each interval intervals[i] = [a, b] represents the ...
- wx.setStorage、wx.getStorage和wx.getStorageSync
Page({ data: { testnum:""//设置测试参数 }, test:function(){ var Num = this.data.testnum; wx.setS ...
- Postman(二)、调试模式
postman提供了一个调试模式,很方便我们写脚本以及断言 在脚本中用console.log()打印,到控制台查看 比如写入如下脚本: 点击Send后,在控制台可以看到如下信息
- AcWing:246. 区间最大公约数(线段树 + 增量数组(树状数组) + 差分序列)
给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1.“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d. 2.“Q l r”,表示询问 A[l],A[l ...