java参数验证
2016-03-10 16:24
393 查看
一、导包
hibernate-validator-4.2.0.Final.jar
validation-api-1.0.0.GA.jar
二、配置文件
四、实体类
五、在有些情况下,有的方法引用实体类的时候
我们有时在实体类中验证的字段值X,实体类同时被A和B两个方法验证引用,但是B方法不需要验证X如果调用就会报错
我们就要将实体类中的验证字段分为两个级别,First、Second,需要两个接口
实体类中做区分
hibernate-validator-4.2.0.Final.jar
validation-api-1.0.0.GA.jar
二、配置文件
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"></bean> <mvc:annotation-driven validator="validator" />三、controller层(注意:BindingResult必须跟在实体类AmbComboForm 后面)
public Result getComboList(@Valid AmbComboForm form, BindingResult result) { //这是取得所有验证字段的error if (result.hasErrors()){ List<ObjectError> errorList = result.getAllErrors(); for(ObjectError error : errorList){ return ERROR(error.getDefaultMessage()); } } //验证单个字段的error if(result.hasFieldErrors("from_entity")){ return ERROR(result.getFieldError("from_entity").toString()); } }
四、实体类
public class AmbComboForm { private Integer start; private Integer length; @NotBlank(message="套餐名不能为空") private String combo_name; private String combo_code; @NotNull(message="套餐价不能为空") private Double combo_price; private String combo_name_code; 省略对应的get,set方法 }
五、在有些情况下,有的方法引用实体类的时候
我们有时在实体类中验证的字段值X,实体类同时被A和B两个方法验证引用,但是B方法不需要验证X如果调用就会报错
我们就要将实体类中的验证字段分为两个级别,First、Second,需要两个接口
public interface First { 内容可以为空...... } <pre name="code" class="html">public interface Second{ 内容可以为空...... }
实体类中做区分
@NotBlank(message="...不能为空", groups={First.class,Second.class}) public String getFrom_entity() { return from_entity; } @NotNull(message="...不能为空", groups={Second.class}) public Integer getId() { return id; }controller中验证(需要验证哪个@Validated({ 传接口类就可以了 }))
public Result updateCombo(@Validated({ First.class,Second.class }) AmbComboForm form, BindingResult result) {}
相关文章推荐
- java嵌套类和内部类、匿名类
- java 钩子方法
- JAVA基础之理解JNI原理
- Java实现生成n个不重复的随机数
- java numa
- spring 代理对象方法增强源码解析222222
- eclipse js validation
- spring DataSourceUtils
- spring 代理对象方法增强源码解析
- java线程中的wait和notify以及notifyall
- Java 变量的声明及初始化
- 用JBE修改Java字节码
- java log4j log日志文件名(+日期标记)
- JAVA CAS原理深度分析
- Java虚拟机类型卸载和类型更新解析
- Spring Data ElasticSearch parnt/child search
- Java 7 SDP:一次编写,到处运行,有时还运行得超炫!
- java从字符串中提取数字
- java io
- 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)