Spring MVC 将请求参数绑定到 POJO 字段
Spring MVC Binding Request parameters to POJO fields
我想要一个具有以下映射(不完整)的控制器:
@GetMapping(/searchitems)
public @ResponseBody Page<Item> get(Item probe)
我想从 Item probe
参数中 query by example 项目存储库和 return 结果。
问题:
如何完成上面的映射以进行搜索 URL?作为搜索 URL,我在想 /searchitems?itemAttributeA=foo&itemAttributeB=bar&...itemAttributeZ=xyz
。如何告诉 spring 将传递的请求参数注入同名的 Item probe
字段?
您可以使用 @RequestParam
来实现。
public @ResponseBody Page<Item> get(@RequestParam("itemAttributeA") String itemAttributeA ,
@RequestParam("itemAttributeB") String itemAttributeB,...)
添加@ModelAttribute 应该将各个请求参数绑定到您的项目 POJO 中。
public @ResponseBody Page<Item> get(@ModelAttribute Item probe)
您可以创建一个 POJO 并在控制器中作为参数传递 class。 Pojo 应该有你想要读取和设置的字段。 Spring 将读取并映射您将定义为请求的 Pojo 中的那些属性。
@GetMapping(/searchitems)
public ResponseEntity<List<Items>> searchItems(ItemRequest itemRequest) {
}
唯一需要注意的是检查绑定结果。如果有错误,我们需要停止请求并处理或抛出。
例如URL 中的所有以下属性都将在 Pojo 中设置。
我想要一个具有以下映射(不完整)的控制器:
@GetMapping(/searchitems)
public @ResponseBody Page<Item> get(Item probe)
我想从 Item probe
参数中 query by example 项目存储库和 return 结果。
问题:
如何完成上面的映射以进行搜索 URL?作为搜索 URL,我在想 /searchitems?itemAttributeA=foo&itemAttributeB=bar&...itemAttributeZ=xyz
。如何告诉 spring 将传递的请求参数注入同名的 Item probe
字段?
您可以使用 @RequestParam
来实现。
public @ResponseBody Page<Item> get(@RequestParam("itemAttributeA") String itemAttributeA ,
@RequestParam("itemAttributeB") String itemAttributeB,...)
添加@ModelAttribute 应该将各个请求参数绑定到您的项目 POJO 中。
public @ResponseBody Page<Item> get(@ModelAttribute Item probe)
您可以创建一个 POJO 并在控制器中作为参数传递 class。 Pojo 应该有你想要读取和设置的字段。 Spring 将读取并映射您将定义为请求的 Pojo 中的那些属性。
@GetMapping(/searchitems)
public ResponseEntity<List<Items>> searchItems(ItemRequest itemRequest) {
}
唯一需要注意的是检查绑定结果。如果有错误,我们需要停止请求并处理或抛出。
例如URL 中的所有以下属性都将在 Pojo 中设置。