SpringMVC controller中业务方法的参数、返回值
业务方法的参数
业务方法的参数类型、参数个数是任意的,根据需要使用。
常见的参数类型:
- HttpServletRequest、HttpServletResponse、HttpSession
获取Servlet原生的API
- Model 、ModelMap
向视图传递数据,会自动将Model、ModelMap中的数据传给视图。
- 简单数据类型 、实体类
接收表单传递的数据
常见的返回值类型
- ModeAndView
视图名+数据
- String
返回视图名,会与视图解析器中的前缀、后缀拼接起来,组成完整的视图名。
可以和@ResponseBody配合使用,直接向浏览器输出字符串。
- void
有时候接收到请求后,做一些操作就OK了,不必返回视图来响应,这时可以把返回值类型写成void。
如果想转发、重定向、向视图传递数据,可以传入参数HttpServletRequest、HttpServletResponse。
需要注意的是,使用HttpServletRequest、HttpServletResponse进行转发、重定向时,不会使用视图解析器,需要写完整的视图名。
示例 返回视图名
比如登录成功,返回某个视图名,转发到指定的页面。
@RequestMapping("/login")
public String login(){
//....
return "index";
} @RequestMapping("/logout")
public String logout(){
//....
return "index";
} @RequestMapping("/upload")
public String upload(){
//....
return "success";
}
示例 使用Model向视图传递数据
@RequestMapping("/handler")
public String handler(Model model){
User user = new User();
user.setUsername("chy");
user.setPassword("abcd"); model.addAttribute("user", user);
return "user_info";
}
在视图中可通过${key}的方式获取对应的value。
Model中可储存多个数据,使用多个setAttribute()即可,数据的类型可以不相同(实质是使用Map储存数据)。
示例 直接输出到浏览器
方式一:
@RequestMapping("/user")
@ResponseBody
public String handler(){
return "<h2>hello</h2>";
}
把字符串添加到响应体中返回给浏览器。浏览器会解析里面的html标签。
方式二:
@RequestMapping("/user")
public void handler(HttpServletResponse response) throws IOException {
response.getWriter().print("<h1>hello</h1>");
}
注意print()才是输出到浏览器页面上,write()是向浏览器写数据,浏览器会把write()的内容保存到文件中(下载)。
SpringMVC controller中业务方法的参数、返回值的更多相关文章
- 13 继续C#中的方法,带返回值的方法介绍
在这一个练习中,我们要使用带返回值的方法.如果一个方法带返回值,那么它的形式是这样的. 定义一个带返回值的C#方法 static 返回类型 方法名字 (参数类型 参数1的名字,参数类型 参数2的名字) ...
- 单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法
using Microsoft.VisualStudio.TestTools.UnitTesting; 如果该DLL应用的是 C:\Program Files\Microsoft Visual Stu ...
- Spring的Aspect切面类不能拦截Controller中的方法
根本原因在于<aop:aspectj-autoproxy />这句话是在spring的配置文件内,还是在springmvc的配置文件内.如果是在spring的配置文件内,则@Control ...
- 反射找Controller中的方法
/// <summary> /// 根据接口编码APICode,调用相应的webapi方法,注意返回值是json字符串 /// </summary> /// <param ...
- js中settimeout方法加参数
js中settimeout方法加参数的使用. 简单使用看w3school 里面没有参数调用, 例子: <script type="text/javascript"> ...
- ASP.NET MVC4在View中调用当前Controller中的方法
调用当前Controller中的方法 @{ ((HomeController)ViewContext.Controller).Method1(); } 调用静态方法 @{ SomeClass.Meth ...
- Java学习笔记13---如何理解“子类重写父类方法时,返回值若为类类型,则必须与父类返回值类型相同或为其子类”
子类重新实现父类的方法称重写:重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改:仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类:要么就不修改 ...
- SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改
有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...
- 创建一个接口Shape,其中有抽象方法area,类Circle 、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象;如是2,生成Rectangle对象;如是3,生成S
题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另 ...
随机推荐
- 模仿虎牙App 导航栏切换
昨天看虎牙直播,发现导航栏挺有意思,自己也做个玩玩 <view class="tab_list row"> <view class="tab_item ...
- 样式计算的几种方式与兼容写法:getComputedStyle¤tStyle&style
window.getComputedStyle(element,[string]) 1参为需要获取样式的元素,2参指定伪元素字符串(如“::after”,不需要则为null),设置2参可获取eleme ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 排序、条件刷选函数
numpy.sort() 函数返回输入数组的排序副本.函数格式如下: numpy.sort(a, axis, kind, order) 参数说明: a: 要排序的数组 axis: 沿着它排序数组的轴, ...
- day04-MyBatis的注解开发
单表的CRUD注解开发: User实体类: package com.zyb.pojo; import java.io.Serializable; import java.util.Date; publ ...
- [read -p应用]插拔光模块去检查port present状态
#!/bin/bash path="/sys/devices/platform/soc/fd880000.i2c-pld/i2c-0/i2c-4/i2c-15/15-0060" a ...
- mysql操作之密码的那点小事
mysql 修改密码的2种方式: 进入mysql库的user表中修改 update mysql.user password = password("新密码") where 条件; ...
- SpringBoot Controller找不到视图路径
在启动类加注解@ComponentScan("com.controller")即可,括号里表示Controller所在包名. 参考:https://blog.csdn.net/ji ...
- 学习笔记(2)- BioBERT
Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, Jaewoo Kang, BioBERT: ...
- java使用netty模拟实现一个类dubbo的分布式服务调用框架
本文较长,如果想直接看代码可以查看项目源码地址: https://github.com/hetutu5238/rpc-demo.git 要想实现分布式服务调用框架,我们需要了解分布式服务一般需要的功能 ...
- SPI接口的FLASH
SPI flash W25Qxx: W25Q系列的spiflash.每页(Page)256B,每16个page为一个sector(扇区=4KB),每16个扇区为一个block(块=64KB) W25Q ...