我有以下 GET 请求:
/api/search?filter.operation=Ping&filter.namespace=
请注意参数名称包含前缀(filter.operation , filter.namespace)。
然后,我想使用以下 bean 来接收这些参数:
class MessageSearchFilter {
String operation;
String namespace;
...
}
处理程序方法具有以下签名:
public @ResponseBody String searchMessages(MessageSearchFilter filter, ...);
但是,这不起作用,因为 Spring MVC 期望 'operation' 和 'namespace' 属性的命名完全一样。如果我将请求更改为使用“操作”和“命名空间”(没有“过滤器”前缀),它会起作用。
有什么方法可以告诉 Spring 期望参数以“过滤器”为前缀?
与此相关的一个附带问题是,如果我的方法签名包含多个具有冲突属性名称的表单对象,会发生什么?