Spring MVC之Action返回类型
Spring MVC支持的方法返回类型
1)ModelAndView 对象。包含Model和View对象,可以通过它访问@ModelAttribute注解的对象。
2)Model 对象。仅包含数据访问,通过 RequestToViewNameTranslator 来隐蔽地决定此请求返回的View视图对象。
3)Map对象。和Model相似。
4)View对象。仅包含视图数据,而model数据隐含在@ModelAttribute注解标注的对象中、或者Command对象中(方法参数的Model对象)。
5)String 值。表示View视图的名称。数据信息的保存同上。
6)void类型。当开发都直接操作ServletResponse / HttpServletResponse进行请求跳转,或者View由 RequestToViewNameTranslator 隐蔽地决定时,可使用此返回值。
7)任意对象。如果方法被@ResponseBody注解,可采用此值。Spring会使用HttpMessageConverters将对象转化成文本输出。
8)HttpEntity<?>或ResponseEntity<?> 对象。使用此值,Spring也会使用HttpMessageConverters将对象转化成文本输出。
9)Callable<?>对象。异步请求时使用。
10)DeferredResult<?>对象。当Spring决定使用选择的某个线程产生值时可以使用此对象。
1、返回String 值。
1)没有@ResponseBody等其他注解
String值表示视图名称,model数据隐含在@ModelAttribute注解标注的对象中、或者Command对象中(方法参数的Model对象)。
解析成真正的视图名称规则为:prefix前缀+视图名称 +suffix后缀(前缀、后缀在Spring配置文件中设定)。
@RequestMapping(value="/index.do")
public String index() throws Exception {
return "login";
}
2)有@ResponseBody注解。作为内容输出:将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。
@RequestMapping(value="/index.do")
@ResponseBody
public String index() throws Exception {
return "login";
}
2、返回void类型。
当开发都直接操作ServletResponse / HttpServletResponse进行请求跳转,或者View由 RequestToViewNameTranslator 隐蔽地决定时,可使用此返回值。
1)输出流中不存在内容,View由 RequestToViewNameTranslator 隐蔽地决定
@RequestMapping(value="/index.do")
public void index() throws Exception {
}
结果返回的jsp页面为“控制器路径+index.jsp”
2)输出流存在输出内容
@RequestMapping(value="/login.do")
public void login(HttpServletResponse response) throws Exception {
response.getWriter().write("<h2>hello world</h2>");
}
3、返回ModelAndView
包含Model和View对象,可以通过它访问@ModelAttribute注解的对象。
@RequestMapping(value="/login.do")
public ModelAndView login() throws Exception {
ModelAndView modelAndView=new ModelAndView("login");
return modelAndView;
}
4、返回Model 或者 Map
仅包含数据访问,通过 RequestToViewNameTranslator 来隐蔽地决定此请求返回的View视图对象(同void)。
当返回结果为Map时,相当于只是返回了Model,并未指定具体的视图。
@RequestMapping(value="/login.do")
public Map<String, Object> login() throws Exception {
Map<String, Object> model=new HashMap<String,Object>();
model.put("message", "Hello Map");
model.put("other", "more item");
return model;
}
5、返回任意类型
如果方法被@ResponseBody注解,可采用此值,否则会报错。
6、其他:比较少用,用的时候再说。
Spring MVC之Action返回类型的更多相关文章
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
- asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比
通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致 ...
- MVC3中Action返回类型ActionResult类型
MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...
- Spring MVC 3.0 返回JSON数据的方法
Spring MVC 3.0 返回JSON数据的方法1. 直接 PrintWriter 输出2. 使用 JSP 视图3. 使用Spring内置的支持// Spring MVC 配置<bean c ...
- MVC Action 返回类型[转]
一. ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回 ...
- Spring MVC之Action输入参数
第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...
- Spring MVC的方法返回值和参数传递
1. SpringMVC方法的返回值类型 3.1String类作为返回值 3.1.1Controller层 /** * 返回值类型为String时,一般用于返回视图名称 * 1.当方法返回值为null ...
- spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAn ...
- Spring MVC同一方法返回JSON/XML格式
最近一道面试题,要求同一API接口支持不同格式返回值.一开始是设想通过过滤器(Filter)设置返回值,但是并不可行,因为方法返回值一般都是类型需要做转换,而过滤器则是前置的.另一方面可以通过拦截器的 ...
随机推荐
- NDK编译应用程序
Android源码目录下的build/envsetup.sh文件,描述编译的命令 - m: Makes from the top of the tree. - mm: Build ...
- linux 内核协议栈收报流程(一)ixgbe网卡驱动
首先模块加载insmod ixgbe.ko module_init(ixgbe_init_module); module_init(ixgbe_init_module); { int ret; pr_ ...
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sq ...
- 标签—box-shadow
box-shadow:2px 3px 4px #CCC; 一个带外阴影的元素,阴影位置x轴偏移2px,y轴偏移3px,模糊范围4px,阴影颜色#CCC box-shadow:inset 0 -4px ...
- Hibernate 系列教程2-创建maven工程
第1步:通过eclipse新建1个java maven项目. 选择file–>new–>other–>MAVEN PROJECT选项 第2步:New Maven project 选择 ...
- 借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。
rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下 ...
- 动画——animation(2)
日常中,我们使用的动画来源有两个方面—— 第一个,自己去定义. 通过@keyframes去定义即可,格式如下: @keyframe animatename{ 0%{ //这里面写初始的对象的css样式 ...
- Ubuntu下安装Reids
安装 官网 http://redis.io/ 下载安装包 redis-3.0.5.tar.gz 解压 tar -zxvf redis-3.0.5.tar.gz cd redis-3.0.5 安 ...
- PAT (Advanced Level) 1109. Group Photo (25)
简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...
- linux 命令实现原理
我们知道有些Linux的命令涉及到一些高效率的算法,在此做出一个积累吧,不是系统的. 1.tail命令打印一个文件的最后num行 2.grep命令从文本中匹配字符串 基于正则表达式的匹配很快. it ...