簡體   English   中英

Spring MVC綁定請求參數到POJO字段

[英]Spring MVC Binding Request parameters to POJO fields

我想要具有以下映射(不完整)的控制器:

@GetMapping(/searchitems)
public @ResponseBody Page<Item> get(Item probe)

我想從Item probe參數中通過示例在項目存儲庫中進行查詢並返回結果。

題:

如何完成上面的搜索URL映射? 作為搜索URL,我在想類似/searchitems?itemAttributeA=foo&itemAttributeB=bar&...itemAttributeZ=xyz東西。 如何告訴spring將傳遞的請求參數注入到具有相同名稱的Item probe字段中?

添加@ModelAttribute應該將各個請求參數綁定到您的Item POJO中。

public @ResponseBody Page<Item> get(@ModelAttribute Item probe)

您可以創建一個POJO並作為參數傳遞給控制器​​類。 Pojo應該具有您要閱讀和設置的字段。 Spring將在Pojo中讀取並映射這些屬性,您將它們定義為請求。

 @GetMapping(/searchitems)
 public ResponseEntity<List<Items>> searchItems(ItemRequest       itemRequest) {
 }

唯一需要注意的是檢查綁定結果。 如果有錯誤,我們需要停止請求並處理或拋出。

例如,URL中的以下所有屬性都將在Pojo中設置。

https:// domain / search-items?pageNumber = 1&sortOrder = ascending&itemName = test&itemType = apparel&sortField = itemId&pageSize = 5

您可以為此使用@RequestParam

public @ResponseBody Page<Item> get(@RequestParam("itemAttributeA") String itemAttributeA , 
                                    @RequestParam("itemAttributeB") String itemAttributeB,...)

我有個問題。 我從具有java.ws.rs.QueryParam類的JAX RS遷移,將參數A接受到Set / Get中。 你能告訴我Spring Boot中有什么等效的東西嗎?

我嘗試使用@ named,@ AliasFor(value =“ documentId”),但沒有運氣

@QueryParam(“ paramA”)@FormParam(“ paramA”)

public void setDocumentId(String paramB) {
    this.documentId = paramB;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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