当前位置:   article > 正文

spring boot获取请求参数并响应

spring boot获取请求参数并响应

获取请求参数并响应:

响应:

在Controller类或方法上加上@ResponseBody注解,可以将方法返回值直接响应,如果返回值是实体对象或者集合,将转换为json格式响应。如下例:

@RestController=@ResponseBody+@Controller;(@Controller只能作用与类上)

将返回信息进行封装,固定响应信息的格式。

  1. public class Result {
  2. private int code;
  3. private String msg;
  4. private Object data;
  5. public static Result success(Object data){
  6. return new Result(1,"success",data);
  7. }
  8. public static Result success(){
  9. return new Result(1,"success",null);
  10. }
  11. public static Result error(String msg){
  12. return new Result(0,msg,null);
  13. }
  14. public Result(int code, String msg, Object data) {
  15. this.code = code;
  16. this.msg = msg;
  17. this.data = data;
  18. }
  19. public Result() {
  20. }
  21. public int getCode() {
  22. return code;
  23. }
  24. public void setCode(int code) {
  25. this.code = code;
  26. }
  27. public String getMsg() {
  28. return msg;
  29. }
  30. public void setMsg(String msg) {
  31. this.msg = msg;
  32. }
  33. public Object getData() {
  34. return data;
  35. }
  36. public void setData(Object data) {
  37. this.data = data;
  38. }
  39. @Override
  40. public String toString() {
  41. return "Result{" +
  42. "code=" + code +
  43. ", msg='" + msg + '\'' +
  44. ", data=" + data +
  45. '}';
  46. }
  47. }


获取请求参数

  • 简单参数:

        定义方法形参,请求参数名与形参变量名一致。

        如果不一致,通过@RequestParam手动映射。

        数据传递要使用基本类型的包装类,否则不传递此数据会报错,当使用了@RequestParam映射时,required默认为true,则此参数必须传递

  1. @RestController
  2. public class getParameter {
  3. @RequestMapping("/user/getUser")
  4. // 数据传递要使用基本类型的包装类,否则不传递此数据会报错,当使用了@RequestParam映射时,required默认为true,则此参数必须传递
  5. public Result test1(@RequestParam(value="name",required=false) String username, Integer age){
  6. System.out.println(username+":"+age);
  7. return Result.success(username+":"+age);
  8. }
  9. }
  • 实体参数:

        请求参数名,与实体对象的属性名一致,会自动接收封装参数。

  1. //生成toString、set和get方法,如果生成了构造方法,一定要提供一个无参构造函数
  2. public class User {
  3. private String name;
  4. private Integer age;
  5. private Integer sex;
  6. private Address address;
  7. }
  8. public class Address {
  9. private String privence;
  10. private String city;
  11. }
  1. @RequestMapping("/user/userObjectParameter")
  2. public Result test3(User user){
  3. System.out.println(user);
  4. return Result.success(user);
  5. }
  • 数组集合参数:

        数组:请求参数名与数组名一致,直接封装。

        集合:请求参数名与集合名一致,@RequestParam绑定关系

  1. // 数组
  2. @RequestMapping("/user/array")
  3. public Result test4(String[] habby){
  4. System.out.println(Arrays.toString(habby));
  5. return Result.success(habby);
  6. }
  7. // 集合
  8. @RequestMapping("/user/list")
  9. public Result test5(@RequestParam List<String> habby){
  10. System.out.println(habby);
  11. return Result.success(habby);
  12. }
  • 日期参数:

        使用@DateTimeFormat定义接收日期的格式。

  1. // 时间,根据ISO 8601规范,日期和时间之间应该用大写字母"T"分隔。
  2. @RequestMapping("/user/date")
  3. public Result test6(@DateTimeFormat(pattern="yyyy-MM-dd HH-mm-ss") LocalDateTime date){
  4. System.out.println(date);
  5. return Result.success(date.toString().replace("T"," "));
  6. }
  • JSON参数:

        使用@RequestBody绑定关系(注意请求方式为post)

  1. // json
  2. @RequestMapping("/user/json")
  3. public Result test7(@RequestBody User user){
  4. System.out.println(user);
  5. return Result.success(user);
  6. }
  • 路径参数

        使用@PathVariable绑定关系

  1. // 路径参数
  2. @RequestMapping("/userPath/{id}/{name}")
  3. public Result test8(@PathVariable String id, @PathVariable String name){
  4. System.out.println(id + ":" + name);
  5. return Result.success(id+":"+name);
  6. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/433998
推荐阅读
相关标签
  

闽ICP备14008679号