博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc学习:处理方法返回值的可选类型
阅读量:6704 次
发布时间:2019-06-25

本文共 2121 字,大约阅读时间需要 7 分钟。

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。

* ModelAndView 

java代码

1.    @RequestMapping("/show1")  2.    public ModelAndView show1(HttpServletRequest request,  3.               HttpServletResponse response) throws Exception {  4.           ModelAndView mav = new ModelAndView("/demo2/show");  5.           mav.addObject("account", "account -1");  6.           return mav;  7.       }

通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面

使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。 
调用addObject()方法将值设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类, 具体请看类。

* Model

  Model是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。  

  主要包含spring封装好的model和modelMap,以及java.util.Map,当没有视图返回的时候视图名称将由requestToViewNameTranslator决定; 

* Map  

java代码

1.    @RequestMapping("/demo2/show")  2.        public Map
getMap() { 3. Map
map = new HashMap
(); 4. map.put("key1", "value-1"); 5. map.put("key2", "value-2"); 6. return map; 7. }

jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。 

写例子时发现,key值包括 - . 时会有问题

* View

  可以返回pdf excel等,暂时没详细了解。 

* String

  指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。 

  注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。 

java代码

1.    @RequestMapping(value = "/something", method = RequestMethod.GET)  2.    @ResponseBody  3.    public String helloWorld()  {  4.    return "Hello World";  5.    }

通过配合@ResponseBody来将内容或者对象作为HTTP响应正文返回(适合做即时校验),上面的结果会将文本"Hello World "直接写到http响应流。

java代码

1.    @RequestMapping("/welcome")  2.    public String welcomeHandler() {  3.      return "center";  4.    }

对应的逻辑视图名为“center”,URL= prefix前缀+视图名称 +suffix后缀组成。

* void 

  如果返回值为空,则响应的视图页面对应为访问地址 

java代码

1.    @RequestMapping("/welcome")  2.    public void welcomeHandler() {}

此例对应的逻辑视图名为"welcome"。 

小结: 
1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。 
2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。 
3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。

转载于:https://www.cnblogs.com/link1988/p/5414669.html

你可能感兴趣的文章
从Java的前景与就业情况看,Java是你首选的编程语言,没有之一
查看>>
[Java 基础]运算符和表达式
查看>>
[20180224]理解exp direct导出操作.txt
查看>>
操作系统实验报告三
查看>>
响应式布局的常用解决方案对比(媒体查询、百分比、rem和vw/vh)
查看>>
生活中的适配器模式——身高不够鞋来凑
查看>>
Veritas推出系统性集成解决方案 帮助全球企业从容应对GDPR条例
查看>>
Java面试----2018最全Redis面试题整理
查看>>
镁客网M-TECH AI助力中国智造产业论坛即将开启,这些大咖在深圳等你
查看>>
专业调酒机器人Foxtender问世
查看>>
Ubuntu 19.04(Disco Dingo)将采用 Linux 5.0 内核
查看>>
ecshop中$user对象
查看>>
一个简单的Julia教程
查看>>
Jenkins连接TFS出现错误:“jenkins com.microsoft.tfs.core.exceptions.TECoreException”的问题收集...
查看>>
Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
查看>>
vim --Filter commands
查看>>
C231n-SVM-assignment1-完全代码及注释
查看>>
KMP(Knuth-Morris-Pratt)算法
查看>>
阿里云 java程序 链接redis 报错 : IO Error: Connection reset
查看>>
业界 | 如果技术从业者上岗前也要宣誓,一份给程序员的希波克拉底誓言
查看>>