spring(3.1.0)控制器验证不起作用

rn0zuynd  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(347)

我正在使用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)时,什么也不会发生,处理程序正在运行该值。
我希望无效的函数参数会引发一些异常,我该怎么办?
谢谢

w1e3prcc

w1e3prcc1#

启用参数验证还需要 MethodValidationPostProcessor 豆子。因为您没有使用springboot,所以需要显式地添加这个bean hibernate-validator 依赖于类路径)。

@EnableWebMvc
@Configuration
@ComponentScan("yourpackage")
public class ClientWebConfigJava implements WebMvcConfigurer {
    @Bean
    public MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }
    // ...
}

相关问题