Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 Spring(3.1.0)控制器验证不工作_Java_Spring_Validation - Fatal编程技术网

Java Spring(3.1.0)控制器验证不工作

Java Spring(3.1.0)控制器验证不工作,java,spring,validation,Java,Spring,Validation,我使用的是Spring3.1.0,有几个@Controller类在Tomcat上运行 我使用类级别的@Validated注释来启用验证,并对控制器方法参数定义了一些约束 下面是一个代码示例: @Controller @RequestMapping(value = "/chapters") public class ChapterController { @RequestMapping(value = "", method = RequestMet

我使用的是Spring3.1.0,有几个
@Controller
类在Tomcat上运行

我使用类级别的
@Validated
注释来启用验证,并对控制器方法参数定义了一些约束

下面是一个代码示例:

@Controller
@RequestMapping(value = "/chapters")
public class ChapterController {

    @RequestMapping(value = "", method = RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    protected Chapter get(@RequestParam @Min(1) @Max(10) count) {
        return getChapters(count);
    }

}
即使需要定义注释,验证也不会发生,因此当我传递一个无效值(例如:count=15)时,什么也不会发生,并且处理程序正在运行该值

我希望无效的函数参数会引发一些异常, 我该怎么办


谢谢

启用参数验证还需要
MethodValidationPostProcessor
bean。 因为您没有使用Spring引导,所以需要显式地添加这个bean(使用Spring引导,如果您在类路径上有
hibernate验证程序
依赖项,那么这个bean是自动配置的)


你用的是Spring boot吗?没有。只有Spring框架。检查我的答案。明白了。这个bean应该添加到application-context.xml吗?它有任何特定的id吗?@forecik是的,您在
application context.xml
中添加这个bean
。请参阅此示例:或检查文档第7.8节Spring ValidationWell nope。仍然不起作用。与中的MethodValidationPostProcessor和LocalValidatoryFactoryBean不同example@Forepick类路径中是否有JSR-303/JSR-349提供程序,例如Hibernate Validator?是的,我在pom.xml上有Hibernate Validator
@EnableWebMvc
@Configuration
@ComponentScan("yourpackage")
public class ClientWebConfigJava implements WebMvcConfigurer {
    @Bean
    public MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }
    // ...
}