《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值
上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值。
一、返回ModelAndView
若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回ModelAndView较好。在使用时,若该处理器方法只是进行跳转而不传递数据,或只是传递数据而不跳转资源(比如对页面的Ajax异步响应),此时若返回ModelAndView,总有一部分多余,要么Model多余,要么View多余,此时返回ModelAndView不合适。
二、返回String
1:内部资源视图名
在Controller方法中直接返回内部资源视图的名称字符串,如下
@RequestMapping("/toUserList.do")
public String toUserList() throws Exception {
return "/WEB-INF/jsp/success.jsp";
}
注意返回String时可以配合内部资源视图解析器配置的前缀和后缀一起使用。也可以返回视图对象名,配合XmlViewResolver视图解析器来使用。
三、返回void
1:通过ServletAPI来传递数据并完成跳转。
2:使用Ajax的时候,不需要有返回值。
四、返回Object
处理器方法也可以返回Object对象。但返回的Obejct对象不是作为视图来出现的,而是作为数据在页面直接显示的。返回Object对象,需要配合@ResponseBody注解来使用。如下:
@RequestMapping("/toUserList.do")
@ResponseBody
public String toUserList() throws Exception {
return new Student();
}
返回Object的时候,还有可能返回List和Map以及自定义类型。这些在处理起来需要前后台配合来开发。下面给出一个例子来说明一下,我们由后台返回一个List<Student>来说明问题。
1:一般返回Object都是将对象转换成了Json后传递给前台浏览器的,由对象转换成Json是由jackson包来完成的。所以我们导入jackson包如下:
jackson-annotations-2.2.3.jar
jackson-core-2.2.3.jar
jackson-databind-2.2.3.jar
2:注册注解驱动
<mvc:annotation-driven />
在springmvc.xml中注册注解驱动后,我们将Controller类的方法稍作修改,如下:
@RequestMapping("/list")
@ResponseBody
public List<Student> list(){
List<Student> list = new ArrayList<Student>();
for(int i = 0;i < 5;i++){
list.add(new Student());
}
return list;
}
到此我们就了解了SpringMVC注解式开发处理器方法的各种返回值。
《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值的更多相关文章
- 11.SpringMVC注解式开发-处理器方法的返回值
处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回Model ...
- 10.SpringMVC注解式开发-处理器方法的参数
1.逐个参数接收 只要保证请求参数名与该请求处理方法的参数名相同即可 // 请求参数名 与该处理器中的请求方法的参数名相同 ,即可接收前台传递过来的参数 public ModelAndView met ...
- springmvc 注解式开发 处理器方法的返回值
1.返回void -Ajax请求 后台: 前台: 返回object中的数值型: 返回object中的字符串型: 返回object中的自定义类型对象: 返回object中的list: 返回object中 ...
- SpingMVC注解式开发-处理器方法的参数(形参request等)
HttpServletRequest HttpServletResponse HttpSession 请求中所携带的请求参数
- SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器
一.参数的传递 1.简单的参数传递 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ * value:传入的参数名,required:是否必填,defaultValue:默认 ...
- 9.SpringMVC注解式开发-处理器的请求映射规则的定义
1.对请求URI的命名空间的定义 @RequestMapping的value属性用于定义所匹配请求的URI.但对于注解在方法上和注解在类上, 其value 属性 所指定的URI,意义是不同的 一个@C ...
- @RequestMapping注解的使用,Controller方法返回值
1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...
- 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)
上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...
- Spring MVC (二)注解式开发使用详解
MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @ ...
随机推荐
- oracle ORA-02292: 违反完整约束条件
我是处于工作中没用过oracle的状态,这不,记录下这个小小的问题.哈哈. 表是公司的平台组定义的.前几天为了测试程序,想删掉一些记录,然后使用delete语句,出现这个东东:oracle ORA-0 ...
- 【easy】268. Missing Number
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- 微信小程序开发学习(二)
一些官方API 总结了一些官方API,便于之后有用时针对性查找(发现官方给了好多好用的API)官方API文档 基础 wx.canIUse:判断小程序的API,回调,参数,组件等是否在当前版本可用,返回 ...
- Python——字符串
p ython——字符串 ①加法 连接两个字符串 ②乘法 复制字符串 python——转义字符 \n 换行 \' 单引号 \'' 双引号 \\ 反斜杠 raw字符串:无视转义字符 转义: 字符串 ...
- webpack是什么
1,打包工具 模块打包 2.前端工程师 ,必不可少工具webpack作用 1.打包 (多个文件,打包成一个文件) 2.转化(less,sass,ts) 需要核心 技术 loader 3优化(SPA越来 ...
- hostapd、/dev/random、/dev/urandom
在使用hostapd做软ap时,出现了random熵不够的问题,导致节点连接不上这个ap. 下面先解释一下/dev/random和/dev/urandom 先让我们从一个工程中遇到的实际问题开始,先上 ...
- js之词法作用域与动态作用域
事实上JavaScript并不具有动态作用域,它只有词法作用域,简单明了,但是this机制某种程度上很像动态作用域 词法作用域:是一套引擎如何寻找变量以及会在何处找到变量的规则,它是定义在词法阶段的作 ...
- IDEA创建完整目录maven项目
鉴于第三次利用idea建立完整目录maven项目时仍要反反复复地问度娘,特此记录 1.第一步,进行project-> 勾选Create from archetype,搜索maven.archet ...
- 微信小程序rich-text 文本首行缩进和图片居中
微信小程序开发使用rich-text组件渲染html格式的代码,常常因为不能自定义css导致文本不能缩进,以及图片不能居中等问题,这里可以考虑使用js的replace方法,替换字符串,然后在渲染的同时 ...
- linux统配符
linux通配符注意:linux的通配符和三剑客的表达式是不一样的,因为,代表的意义是有较大区别的.通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景. * ...