gpt4 book ai didi

java - Spring MVC - 是否可以通过 GET 接收强类型请求对象?

转载 作者:行者123 更新时间:2023-12-02 07:17:36 24 4
gpt4 key购买 nike

我有一个 Spring MVC Controller ,它正在为 GET 请求提供服务,以执行搜索。

这些请求有许多可选参数,可以在查询字符串上传递。

例如:

@Data
public class SimpleSearchRequest implements SearchRequest {

private String term;
private List<Status> stati;
@JsonDeserialize(using=DateRangeDeserializer.class)
private Range<DateTime> dateRange;
}

如果我为此使用 POST 或 PUT,我可以使用 @RequestBody 很好地编码入站请求。但是,因为我使用的是 GET,所以这似乎不合适。

相反,我似乎需要将方法签名上的所有可能参数列为 @RequestParam(required=false)

除了导致丑陋的方法签名之外,由于不在这里使用类,我还失去了各种面向对象的优点。

尝试使用@RequestBody失败(可以理解),正如所讨论的herehere ,在 GET 上使用实际的请求正文是不可取的。

有没有办法让 Spring MVC 支持在 GET 请求上将多个 @RequestParam 编码到强类型对象?

最佳答案

看来答案就是简单地删除注释。

这有效:

@RequestMapping(method=RequestMethod.GET)
public @ResponseBody List<Result> search(SearchRequest request) {}

关于java - Spring MVC - 是否可以通过 GET 接收强类型请求对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741673/

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