[英]Is it possible to have strongly typed HTTP request handlers in Restlet?
[英]Spring MVC - Is it possible to receive a strongly typed request object on a GET?
我有一個Spring MVC控制器,它正在為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)
。
除了導致丑陋的方法簽名之外,我還因為不在這里使用類而失去了各種OO的優點。
嘗試使用@RequestBody
失敗(可以理解),並且正如這里和此處所討論的, 在 GET上使用實際請求主體是不可取的。
有沒有辦法讓Spring MVC支持將多個@RequestParam
編組到GET請求上的強類型對象?
似乎答案是簡單地刪除注釋。
這有效:
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody List<Result> search(SearchRequest request) {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.