如何使用JSR验证验证Spring中的Controller方法参数?

时间:2014-06-23 18:10:36

标签: 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 number")
    public String getZip_code()
    {
       return this.zip_code;
    }
}

现在我希望在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
}

怎么可能?

1 个答案:

答案 0 :(得分:1)

不是。 @Valid不适用于@RequestParam带注释的参数。您可以创建自定义HandlerMethodArgumentResolver来执行此操作,也可以在方法中自行进行验证。