Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Spring mvc SpringMVC不处理来自hibernate验证程序的错误_Spring Mvc_Spring Security_Hibernate Validator_Tiles2 - Fatal编程技术网

Spring mvc SpringMVC不处理来自hibernate验证程序的错误

Spring mvc SpringMVC不处理来自hibernate验证程序的错误,spring-mvc,spring-security,hibernate-validator,tiles2,Spring Mvc,Spring Security,Hibernate Validator,Tiles2,我使用Hibernate validator创建表单和控制器,该表单有一些验证约束。我在开始测试验证约束时遇到了问题,但我得到了带有attributemodel的蓝色异常页面,其中包含拒绝 这就是配置 @Configuration @ComponentScan(basePackages = {"com.whatever.core.web"}) @EnableWebMvc public class WebMvcConfig extends WebMvcConfigu

我使用Hibernate validator创建表单和控制器,该表单有一些验证约束。我在开始测试验证约束时遇到了问题,但我得到了带有attributemodel的蓝色异常页面,其中包含拒绝

这就是配置

    @Configuration
    @ComponentScan(basePackages = {"com.whatever.core.web"})
    @EnableWebMvc
    public class WebMvcConfig extends WebMvcConfigurationSupport {

private static final String MESSAGE_SOURCE = "/WEB-INF/classes/messages";
private static final String TILES = "/WEB-INF/tiles/tiles.xml";
private static final String VIEWS = "/WEB-INF/views/**/views.xml";

private static final String RESOURCES_HANDLER = "/resources/";
private static final String RESOURCES_LOCATION = RESOURCES_HANDLER + "**";



@Override
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
    RequestMappingHandlerMapping requestMappingHandlerMapping = super.requestMappingHandlerMapping();
    requestMappingHandlerMapping.setUseSuffixPatternMatch(false);
    requestMappingHandlerMapping.setUseTrailingSlashMatch(false);
    return requestMappingHandlerMapping;
}

public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(new MappingJacksonHttpMessageConverter());
}

@Bean(name = "messageSource")
public MessageSource configureMessageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename(MESSAGE_SOURCE);
    messageSource.setCacheSeconds(5);
    return messageSource;
}

@Bean
public TilesViewResolver configureTilesViewResolver() {
    return new TilesViewResolver();
}

@Bean
public TilesConfigurer configureTilesConfigurer() {
    TilesConfigurer configurer = new TilesConfigurer();
    configurer.setDefinitions(new String[] {TILES, VIEWS});
    return configurer;
}

@Override
public Validator getValidator() {
    LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
    validator.setValidationMessageSource(configureMessageSource());
    return validator;
}



@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler(RESOURCES_HANDLER).addResourceLocations(RESOURCES_LOCATION);
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}
    }
注意:我使用springMVC、SpringSecurity、tiles和hibernate验证器


我使用了SpringMVC和hibernate验证器以及XML配置和门户环境,工作正常,我不知道这里出了什么问题

我发现了问题!方法控制器的签名应该是这样的

    public String signup(@ModelAttribute("userModel") @Valid SignupForm userModel,BindingResult result,HttpServletRequest request,HttpServletResponse response,ModelMap model)
正如我在sprinsource论坛中所读到的,BindingResult应该遵循modelAttribute和work find。我没有找到任何官方文件,但它的工作现在

要查看springsource论坛的帖子,请查看此链接

    public String signup(@ModelAttribute("userModel") @Valid SignupForm userModel,BindingResult result,HttpServletRequest request,HttpServletResponse response,ModelMap model)