您的位置:首页 > 编程语言 > Java开发

java参数验证

2016-03-10 16:24 393 查看
一、导包

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) {}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: