java参数验证

来源:互联网 发布:大连软件职业学院几本 编辑:程序博客网 时间:2024/05/16 04:55

一、导包

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) {}


0 0
原创粉丝点击