天天看点

用对象接收get请求传递过来的多个参数

最近是跟get请求杠上了,对于需要传多个参数大多数人都会选择post请求传一个对象吧,这样也更好维护。但是最近公司在去windows化,将原来的.net项目转成java项目。项目过程中发现很多get请求的接口需要接收多个参数,为什么不直接用post请求呢?虽然不理解,但是这是前人留下的坑,现在该填还得填。

当然,你可以像这样:

@RequestMapping(value = "/test", method = RequestMethod.GET)
    public void test(@RequestParam(required = false) String param1,
                                  @RequestParam(required = false) Integer param2,
                                  @RequestParam(required = false)  String param3,
                                  @RequestParam(required = false) String param4 ){
      
    }
           

但是,作为一个优秀的程序猿是不是应该让代码看起来优雅一点,用一位前辈的话来讲,要有工匠精神。

所以,最后我选择了这样做:

@RequestMapping(value = "/test", method = RequestMethod.GET)
    public void test(@ModelAttribute ParamModel model){
      
    }
           

这样是不是看起来更简洁呢

这里的ParamModel是自己定义的对象,用来接收get请求传递过来的多个参数。@ModelAttribute 是SpringMVC的注解。

不光适用于get请求,同样也适用于put和delete请求。

希望对需要的小伙伴有所帮助。