赞
踩
获取请求参数并响应:
响应:
在Controller类或方法上加上@ResponseBody注解,可以将方法返回值直接响应,如果返回值是实体对象或者集合,将转换为json格式响应。如下例:
@RestController=@ResponseBody+@Controller;(@Controller只能作用与类上)
将返回信息进行封装,固定响应信息的格式。
- public class Result {
- private int code;
- private String msg;
- private Object data;
-
- public static Result success(Object data){
- return new Result(1,"success",data);
- }
- public static Result success(){
- return new Result(1,"success",null);
- }
- public static Result error(String msg){
- return new Result(0,msg,null);
- }
-
- public Result(int code, String msg, Object data) {
- this.code = code;
- this.msg = msg;
- this.data = data;
- }
-
- public Result() {
- }
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public String getMsg() {
- return msg;
- }
-
- public void setMsg(String msg) {
- this.msg = msg;
- }
-
- public Object getData() {
- return data;
- }
-
- public void setData(Object data) {
- this.data = data;
- }
-
- @Override
- public String toString() {
- return "Result{" +
- "code=" + code +
- ", msg='" + msg + '\'' +
- ", data=" + data +
- '}';
- }
- }
获取请求参数
定义方法形参,请求参数名与形参变量名一致。
如果不一致,通过@RequestParam手动映射。
数据传递要使用基本类型的包装类,否则不传递此数据会报错,当使用了@RequestParam映射时,required默认为true,则此参数必须传递
- @RestController
- public class getParameter {
- @RequestMapping("/user/getUser")
- // 数据传递要使用基本类型的包装类,否则不传递此数据会报错,当使用了@RequestParam映射时,required默认为true,则此参数必须传递
- public Result test1(@RequestParam(value="name",required=false) String username, Integer age){
- System.out.println(username+":"+age);
- return Result.success(username+":"+age);
- }
- }
请求参数名,与实体对象的属性名一致,会自动接收封装参数。
- //生成toString、set和get方法,如果生成了构造方法,一定要提供一个无参构造函数
- public class User {
- private String name;
- private Integer age;
- private Integer sex;
- private Address address;
- }
- public class Address {
- private String privence;
- private String city;
- }
- @RequestMapping("/user/userObjectParameter")
- public Result test3(User user){
- System.out.println(user);
- return Result.success(user);
- }
数组:请求参数名与数组名一致,直接封装。
集合:请求参数名与集合名一致,@RequestParam绑定关系
- // 数组
- @RequestMapping("/user/array")
- public Result test4(String[] habby){
- System.out.println(Arrays.toString(habby));
- return Result.success(habby);
- }
- // 集合
- @RequestMapping("/user/list")
- public Result test5(@RequestParam List<String> habby){
- System.out.println(habby);
- return Result.success(habby);
- }
使用@DateTimeFormat定义接收日期的格式。
- // 时间,根据ISO 8601规范,日期和时间之间应该用大写字母"T"分隔。
- @RequestMapping("/user/date")
- public Result test6(@DateTimeFormat(pattern="yyyy-MM-dd HH-mm-ss") LocalDateTime date){
- System.out.println(date);
- return Result.success(date.toString().replace("T"," "));
- }
使用@RequestBody绑定关系(注意请求方式为post)
- // json
- @RequestMapping("/user/json")
- public Result test7(@RequestBody User user){
- System.out.println(user);
- return Result.success(user);
- }
使用@PathVariable绑定关系
- // 路径参数
- @RequestMapping("/userPath/{id}/{name}")
- public Result test8(@PathVariable String id, @PathVariable String name){
- System.out.println(id + ":" + name);
- return Result.success(id+":"+name);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。