dom*_*arr 6 java spring spring-mvc spring-annotations
我想为id - > entity使用自定义WebArgumentResolver.如果我使用请求参数,则足够简单:使用参数键确定实体类型并相应地查找.
但我希望它像@PathVariable注释.
例如.
http://mysite.xzy/something/enquiryId/itemId会触发此方法
@RequestMapping(value = "/something/{enquiry}/{item}")
public String method(@Coerce Enquiry enquiry, @Coerce Item item)
Run Code Online (Sandbox Code Playgroud)
@Coerce注释会告诉WebArgumentResolver根据它的类型使用特定服务.
问题在于哪个uri部分属于实体.
有人可以解释PathVariable注释如何做到这一点.是否可以使用我的自定义注释来模拟它.
谢谢.
小智 11
您可以使用@InitBinder让spring知道如何将给定的String强制转换为您的自定义类型.
你想要的东西是这样的:
@RequestMapping(value = "/something/{enquiry}")
public String method(@PathVariable Enquiry enquiry) {...}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Enquiry.class, new PropertyEditorSupport() {
@Override
public String getAsText() {
return ((Enquiry) this.getValue()).toString();
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
setValue(new Enquiry(text));
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |