簡體   English   中英

Spring MVC - 是否可以在GET上接收強類型請求對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM