1.建立一个maven项目
这里不在描述。网上搜一下
2.需要依赖的maven配置
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.2.Final</version>
</dependency>
//spring我用的4.2.9.RELEASE。上了4.3.0就不会有对应的velocity的加载项了
3.配置对应的spring配置文件
//这里不写国际化消息拦截哪里配置了,应该不会有问题,网上复制一下就好了。
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<!--不设置则默认为classpath下的 ValidationMessages.properties -->
<property name="validationMessageSource" ref="validationMessageSource"/>
</bean>
<!-- 默认的注解映射的支持 -->
[color=red]<mvc:annotation-driven validator="validator"/>[/color]
<bean id="validationMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 如果在国际化资源文件中找不到对应代码的信息,就用这个代码作为名称 -->
<property name="useCodeAsDefaultMessage" value="false" />
<property name="fileEncodings" value="utf-8"></property>
<property name="basename">
<value>[color=red]classpath:[/color]messages/messages</value>
</property>
</bean>
4.要验证的实体类
public class Spitter implements Serializable {
@NotEmpty(message="不能为空额")
@Pattern(regexp = "[a-zA-Z0-9_]{5,10}", message = "{username.illegal}")
private String username;
@Size(min = 5, max = 10, message = "{password.illegal}")
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
对应的页面控制Controller
/**
* 校验的控件
* 标红的部分记住在@Valid所修饰的对象之后,也可以是Errors对象,是成对出现的
* 相当于前面是给你一个标准,后边是对应哪个标准收集错误。
* @param spitter
* @param result
* @return
*/
@RequestMapping(value = "/valid", method = RequestMethod.GET)
public String valid(@Valid Spitter spitter, [color=red]BindingResult result[/color], ModelMap modelMap) {
if (result.hasErrors()) {
modelMap.addAttribute("errors", result.getFieldError().getDefaultMessage());
logger.error(result.toString());
}
return "insur_product";
}
5.配置对应的/messages/messages_zh_CN.properties文件
username.illegal=请输入5-10位的字母数字下划线的用户名
#Size.spitter.password=密码[${validatedValue}]长度必须为{min}到{max}个字符
password.illegal=密码长度必须为{min}到{max}个字符。
6.出现校验问题解决
1.校验时候直接输出{password.illegal}
Field error in object 'spitter' on field 'password': rejected value [1]; codes [Size.spitter.password,Size.password,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spitter.password,password]; arguments []; default message [password],10,5]; default message [[color=red]{password.illegal}[/color]]
这个是你没有加载对properties文件。看看你的文件加载对不对。用tomcat+maven时候注意修改配置文件最好clean package一下
2.校验时候出现乱码问题如:
Field error in object 'spitter' on field 'password': rejected value [1]; codes [Size.spitter.password,Size.password,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spitter.password,password]; arguments []; default message [password],10,5]; default message [color=red][å¯ç é¿åº¦å¿
须为5å°10个å符][/color]
能到这里就是你已经正确配置了路径,但是你properties中中文不是unicode的编码,如果你不是idea你可以转成unicode编码放入properties文件,如果你是idea你只需要设置选中File | Settings | Editor | File Encodings
这样你就可以直接写中文了,不需要转化一次后复制进去,
3.不能解析出{}中的内容:同样是你的编码问题,你最好是将{}也使用unicode编码放入properties的文件,这样国际化配置消息就OK了。
- 大小: 48.4 KB
分享到:
相关推荐
在 Spring MVC 中,可以通过配置 Hibernate Validator 的约束注解处理器,使其自动处理控制器方法参数的校验。 2.3 为 JavaBean 添加 constraint 在 JavaBean 的属性上添加 Bean Validation 或 Hibernate Validator...
2. **配置Validator**:在Spring配置文件中启用`LocalValidatorFactoryBean`,作为Bean验证提供者。 ```xml <bean id="validator" class="org.springframework.validation.beanvalidation....
-- Spring配置类示例 --> @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) ...
Hibernate Validator 支持错误消息的国际化,通过配置资源文件,我们可以为不同的语言提供本地化的错误提示。 **6. 集成到Spring框架** 在 Spring 应用中,Hibernate Validator 可以与 Spring 的数据绑定和验证机制...
Hibernate Validator是Hibernate项目的一个子项目,其主要目标是实现JSR 303和JSR 349(Bean Validation)标准,为Java应用程序提供数据校验功能。它提供了丰富的注解和API,使得开发者可以方便地在Bean的属性上定义...
1. Spring配置文件:如`applicationContext.xml`,其中定义了bean的声明和依赖关系,可能还包括了数据源、SessionFactory以及事务管理器的配置。 2. Hibernate配置文件:如`hibernate.cfg.xml`,用于设置数据库连接...
总结来说,基于Hibernate Validator的异步表单校验框架能够帮助开发者高效、灵活地实现数据验证,提升用户体验,同时保持代码的整洁和模块化。正确地使用这个框架,可以避免因为数据验证问题而导致的各种异常情况,...
4. **Spring MVC与Hibernate Validator的整合**:在Spring MVC中,可以通过配置将Hibernate Validator作为验证引擎。然后,通过`@Valid`注解在控制器方法参数前,触发对传入对象的验证。如果验证失败,Spring MVC会...
总结,Hibernate Validator 4.2.0.Final是Java开发者在处理数据验证时的得力工具,其易用性、灵活性和强大的功能使其在企业级应用中广泛应用。通过熟练掌握并合理运用,可以极大地提高代码质量和开发效率,降低维护...
Hibernate Validator 是基于 JSR-303(Java Bean Validation)和 JSR-349(Java Bean Validation 1.1)规范的实现,它提供了一套灵活且强大的验证API,使得开发者能够对对象属性进行校验,确保输入数据的正确性。...
2. **配置与集成**:讲解如何在Spring、JSF、CDI等不同框架中集成Hibernate Validator,以及如何通过XML或编程方式进行配置。 3. **表达式语言**:介绍Hibernate Validator的内置表达式语言,用于在约束中定义复杂...
本教程将详细介绍如何在Spring MVC中配置并使用Hibernate Validation进行数据校验。 首先,我们需要引入必要的依赖。在Spring MVC项目中,通常我们会使用Maven或Gradle作为构建工具。对于Hibernate Validator,可以...
总结起来,Hibernate Validator 5.0.3.Final版本以其强大的功能和易用性,成为企业级应用中不可或缺的数据校验工具。无论是在传统的Java EE环境中,还是在现代的Spring Boot项目中,它都能提供高效、灵活的验证解决...
通过使用 Hibernate Validator,开发者可以更轻松地进行数据校验,提升代码的可读性和可维护性。 在 Hibernate Validator 6.0.2.Final 版本中,包含了所有执行验证功能所需的 jar 包,这使得开发者可以直接集成到...
在 Spring 应用中,可以通过配置将 Hibernate Validator 作为默认的验证器,从而在服务层方法参数、模型属性等地方自动执行验证。 7. **国际化支持** Hibernate Validator 支持国际化错误消息,可以为不同语言...
- 集成Hibernate Validator到Spring或EJB项目中,了解如何配置和使用验证器。 - 学习如何创建和使用自定义验证注解,以满足更复杂的业务需求。 - 熟悉错误处理机制,如何优雅地展示验证失败的信息给用户。 7. **...
在`SpringMVC`的环境中,我们可以通过配置`Validator`实现类,将验证逻辑集成到控制器的处理方法中,确保数据在进入业务层之前已经过校验。例如,你可以创建一个自定义的验证注解,并在服务接口中使用它: ```java ...
Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它提供了一套强大的数据验证工具——Hibernate Validator,这正是"hibernate的校验框架validate"的核心内容。本文将详细介绍Hibernate Validator及其在...