spring boot获取请求参数并响应

获取请求参数并响应:

响应:

在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"," "));
    }
  • JSON参数:

        使用@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);
    }

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值