Java 如何使用JSR验证验证Spring中的控制器方法参数?
我正在用给定的代码验证我的表单字段Java 如何使用JSR验证验证Spring中的控制器方法参数?,java,spring,validation,controller,arguments,Java,Spring,Validation,Controller,Arguments,我正在用给定的代码验证我的表单字段 //controller method public String addBusiness(@Valid @ModelAttribute("myForm") MyForm myForm, ...) { //logic will go here. } //form @Component public class MyForm{ @Pattern(regexp = "[0-9]{3,10}", message = "should be valid
//controller method
public String addBusiness(@Valid @ModelAttribute("myForm") MyForm myForm, ...)
{
//logic will go here.
}
//form
@Component
public class MyForm{
@Pattern(regexp = "[0-9]{3,10}", message = "should be valid number")
public String getZip_code()
{
return this.zip_code;
}
}
现在我想用另一种控制器方法对邮政编码进行同样的验证,比如
@RequestMapping(value = "${validation.url}", method = RequestMethod.GET)
@ResponseBody
public List<String> getCityList(@RequestParam(value = "zip_code", required = true) final String zip_code)
{
//logic goes here
}
@RequestMapping(value=“${validation.url}”,method=RequestMethod.GET)
@应答器
公共列表getCityList(@RequestParam(value=“zip\u code”,required=true)最终字符串zip\u code)
{
//逻辑就在这里
}
怎么可能呢?不可能
@Valid
不适用于@RequestParam
注释参数。您可以创建一个自定义的HandlerMethodArgumentResolver
来执行此操作,也可以自己在方法中执行验证。Hi@SotiriosDelimanolis谢谢,如果可能的话,您能给我一个HandlerMethodArgumentResolver
的示例来进行此验证吗?@VishalZanzrukia这只是一个您实现和注册的接口。实现依赖于用例。用谷歌搜索这个类,你会发现这样的例子。