2017-04-19 90 views
0

我想用下面的映射(不完全)控制器:Spring MVC的請求參數綁定到POJO領域

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

從項目的存儲庫中的Item probe參數我想query by example並返回結果。

問:

我怎樣才能完成上述映射搜索URL?作爲搜索網址,我在想像/searchitems?itemAttributeA=foo&itemAttributeB=bar&...itemAttributeZ=xyz。我怎樣才能告訴spring將通過的請求參數注入Item probe域名中?

回答

1

添加@ModelAttribute應個人請求參數綁定到你的項目POJO。

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

我想添加一個後續。 Spring具有RestController的概念,如果使用此註釋而不是Controller,則可以從方法簽名中刪除ResponseBody註釋 –

0

您可以使用@RequestParam

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

您可以創建一個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

相關問題