Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSR验证验证Spring中的控制器方法参数?_Java_Spring_Validation_Controller_Arguments - Fatal编程技术网

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这只是一个您实现和注册的接口。实现依赖于用例。用谷歌搜索这个类,你会发现这样的例子。