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返回类型的更多相关文章

  1. ASP.NET MVC – 关于Action返回结果类型的事儿(上)

    原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一.         ASP.NET MVC 1.0 Result 几何? Action的 ...

  2. asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比

    通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致 ...

  3. MVC3中Action返回类型ActionResult类型

    MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...

  4. Spring MVC 3.0 返回JSON数据的方法

    Spring MVC 3.0 返回JSON数据的方法1. 直接 PrintWriter 输出2. 使用 JSP 视图3. 使用Spring内置的支持// Spring MVC 配置<bean c ...

  5. MVC Action 返回类型[转]

    一.         ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回 ...

  6. Spring MVC之Action输入参数

    第一部分:Action输入参数Spring MVC 通过@RequestMapping注解映射请求,最终的真正执行代码为处理器方法,即@RequestMapping注解的方法.Spring MVC方法 ...

  7. Spring MVC的方法返回值和参数传递

    1. SpringMVC方法的返回值类型 3.1String类作为返回值 3.1.1Controller层 /** * 返回值类型为String时,一般用于返回视图名称 * 1.当方法返回值为null ...

  8. spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

    spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAn ...

  9. Spring MVC同一方法返回JSON/XML格式

    最近一道面试题,要求同一API接口支持不同格式返回值.一开始是设想通过过滤器(Filter)设置返回值,但是并不可行,因为方法返回值一般都是类型需要做转换,而过滤器则是前置的.另一方面可以通过拦截器的 ...

随机推荐

  1. ios中关于UIImagePickerController的一些知识总结

    记得添加MobileCoreServices.framework 及导入#import <MobileCoreServices/MobileCoreServices.h> @interfa ...

  2. 关于web.xml的格式

    先是filter  再是<filter-mapping> 然后<servlet> 再是<servlet-mapping> 这是一种规范基于j2ee 在开发的过程中一 ...

  3. IE8浏览器兼容问题总结

    IE8+兼容经验小结 January 15, 2014 本文分享下我在项目中积累的IE8+兼容性问题的解决方法.根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几 ...

  4. linux的mount(挂载)NFS 共享,命令详解

    Linux下挂载(mount)光盘镜像文件.移动硬盘.U盘.Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统 ...

  5. hdu_4467_Graph(莫队算法思想)

    题目连接:hdu_4467_Graph 题意:给你n个点,m条边,每条边有一个权值,有两个操作,一个是修改单点的颜色,一个是询问边的两个端点都为指定颜色的权值和 题解:这题如果暴力的话,就是维护3个a ...

  6. C++调用java

    摘要: 1 java类生成c头文件和库文件 2 对于c/c++程序,启动时先启动jvm,然后获得对应的java类的对象和方法.然后正常使用. 最近正在做一个C/C++调用java的程序,这里说的调用j ...

  7. Windows下python安装MySQLdb

    安装MySQLdb需要在电脑上安装MySQL connector C,只需要这个connector就好,不需要把mysql装全. 另外,需要安装VC for python提供编译. 到官网上下载脚本进 ...

  8. 帝国CMS系统结合项图文教程

    为了使信息列表可实现按多种条件输出数据,帝国CMS独创可设置无限条件的模型结合项功能.帝国CMS的结合项功能是指按模型多个字段内容来结合显示对应的信息. 二.结合项的语法说明 结合项访问地址: /e/ ...

  9. Linux SCP命令复制传输文件的用法

    SCP命令是用户通过网络将一台Linux服务器的文件复制到另一台Linux服务器,方法如下: 一:从本地复制到远程 复制文件: 命令格式: scp local_file remote_username ...

  10. plsql找外键约束关联的表的方法

    直接Ctrl + 鼠标左键 表名 就可以找到参照表(关联表)的名称 下面的是复杂的方法 这个就是关联的表 这里右键查看 可以查看到参照的表