Spring-mvc中如何为请求参数设置别名?

mem*_*und 5 java spring spring-mvc

当 Spring 中的请求参数有一个 bean 对象时:有没有办法为 bean 属性定义别名?

@RestController
public class MyServlet {
   @GetMapping
   public void test(MyReq req) {
   }
}

public class MyReq {
   @RequestParam("different-name") //this is invalid
   private String name;
   private int age;
}
Run Code Online (Sandbox Code Playgroud)

当然@RequestParam不起作用,但是我可以使用类似的注释吗?

Ser*_*niy 2

请求参数由setter绑定。您可以使用原始参数名称添加额外的设置器。就像是:

public class MyReq {
   private String name;
   private int age;

   public void setDifferentName(String differentName) {
      this.name=differentName;
   }
}
Run Code Online (Sandbox Code Playgroud)

注意:只有当您的参数是驼峰式大小写时,它才有效differentName=abc。不会与 一起工作different-name=abc