Spring Boot 使用@ParameterObject时使用不同的请求参数名称,以避免字段/方法名称中的下划线[重复]

x4shl7ld  于 2023-06-22  发布在  Spring
关注(0)|答案(1)|浏览(724)
    • 此问题已在此处有答案**:

How to customize parameter names when binding Spring MVC command objects?(10个答案)
昨天关门了。
有没有一种简单的方法可以让请求参数名不同于类中的字段名,用作@ParameterObject?
我想使用不同名称的原因是请求参数应该包含下划线,而我不想在字段或方法名称中包含下划线,所以我正在寻找不需要这个的解决方案。
下面是一个我想实现的目标的例子。
参数对象:

public class SearchParams {

    private String someParam;
    private String someOtherParam;

}

在控制器中:

@GetMapping
public SomeResponse getFoos(@ParameterObject SearchParams params) {
    return fooService.getFoos(params);
}

请求路径:

GET /foos?some_param=abc&some_other_param=xyz
5fjcxozz

5fjcxozz1#

你可以通过额外的getter/setter对来实现这一点。就像这里:

public class SearchParams {
    private String someName;

    public String getSomeName() {
        return someName;
    }

    public void setSomeName(String someName) {
        this.someName = someName;
    }
    public String getSomeDifferentName() {
        return someName;
    }

    public void setSomeDifferentName(String someName) {
        this.someName = someName;
    }
}

相关问题