美文网首页
springboot Get请求参数转对象

springboot Get请求参数转对象

作者: 时之令 | 来源:发表于2017-12-13 18:54 被阅读0次

springboot的get请求可以通过多种方式获取参数,但是如果一个get请求的参数太多,通过 下面这种方式:

@GetMapping("/getobj")
public Object getObjByParam(@RequestParam("name") String name,@RequestParam("sex")String sex,@RequestParam("name")int age){
String str = "test = " + age+" name = "+name +" sex = "+sex;
logger.info(str);
return age;
}

显然给代码维护和阅读带来不便,可以通过构造一个对象来简化参数的接收方式如下:

@GetMapping("/getobj")
public Object getObj(Test test){
logger.info("test = " + test);
return test;
}
public static class Test{

    private String name;
    private String sex;
    private int age;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getSex() {
       return sex;
   }

   public void setSex(String sex) {
       this.sex = sex;
   }

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }

   @Override
   public String toString() {
       return "Test{" +
               "name='" + name + '\'' +
               ", sex='" + sex + '\'' +
               ", age=" + age +
               '}';
   }

}
通过这种方式,参数中就可以直接将多个参数通过getter,setter方法注入到对象中去。POST方式更不用说了,肯定是支持的。个人建议,在三个参数一下,可以通过基本类型接收参数,多个参数,用一个对象接受比较方便一些。

完整的代码如下:
请求:http://localhost:8112/regula/test/getobj?name=zhang&age=28&sex=

controller:
/**

  • @author: kewei.zhang

  • @Date: 2017/12/13

  • @Time: 下午6:30

  • Description: 用于测试一些功能的测试模块,不属于业务
    */
    @RestController
    @RequestMapping("/test")
    public class TestController extends BaseController{

    @GetMapping("/getobj")
    public Object getObj(Test test){
    logger.info("test = " + test);
    return test;
    }

@GetMapping("/getobj")
public Object getObjByParam(@RequestParam("name") String name,@RequestParam("sex")String sex,@RequestParam("name")int age){
    String str = "test = " + age+" name = "+name +" sex = "+sex;
    logger.info(str);
    return  age;
}

public static class Test{

    private String name;
    private String sex;
    private int age;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getSex() {
       return sex;
   }

   public void setSex(String sex) {
       this.sex = sex;
   }

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }

   @Override
   public String toString() {
       return "Test{" +
               "name='" + name + '\'' +
               ", sex='" + sex + '\'' +
               ", age=" + age +
               '}';
   }

}
}

相关文章

网友评论

      本文标题:springboot Get请求参数转对象

      本文链接:https://www.haomeiwen.com/subject/myuzixtx.html