gpt4 book ai didi

Spring 3 MVC-将带有前缀的请求参数映射到单个bean

转载 作者:行者123 更新时间:2023-12-04 04:39:08 26 4
gpt4 key购买 nike

我有以下GET请求:
/api/search?filter.operation=Ping&filter.namespace=
请注意,参数名称包含前缀(过滤器。操作,过滤器。命名空间)。

然后,我要使用以下bean来接收这些参数:

class MessageSearchFilter {
String operation;
String namespace;
...
}

并且处理程序方法具有以下签名:
public @ResponseBody String searchMessages(MessageSearchFilter filter, ...);
但是,这不起作用,因为Spring MVC希望'operation'和'namespace'属性完全像这样命名。如果我将请求更改为使用“操作”和“命名空间”(不带“filter。”前缀),则此方法有效。

有什么办法可以让Spring期望参数以'filter'为前缀?

与此相关的一个附带问题是,如果我的方法签名包含多个具有冲突属性名称的表单对象,该怎么办?

最佳答案

您应该能够使用@RequestParam映射传入的查询字符串参数,并且可以完全限定它们:

//Your @RequestMapping here...
public @ResponseBody String searchMessages(
@Requestparam("filter.operation") String filterOperation,
@RequestParam("filter.namespace") String filterNamespace) {
MessageSearchFilter messageSearchFilter = new MessageSearchFilter();
messageSearchFilter.operation = filterOperation;
messageSearchFilter.namespace = filterNamespace;
//do your thing here...
}

您还将注意到,您现在应该能够为其他具有属性名称冲突的对象添加限定符。

关于Spring 3 MVC-将带有前缀的请求参数映射到单个bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7877600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com