show-cloud(十二) 实体添加属性校验

第一步:在实体上添加不能为空的属性校验

/*********************************************************************
 *  文件名:JobLevel.java
 *  版权所有 (C) 2018
 *  创建日期:2018-06-25
 *********************************************************************/
package org.go.show.users.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.go.show.common.dto.BaseEntity;

import javax.validation.constraints.NotEmpty;


/**
 * 职务级别
 *
 * @author going-rocket
 */
@TableName("G_JOB_LEVEL")
@Data
@Getter
@Setter
@JsonIgnoreProperties({"typeName"})
public class JobLevel extends BaseEntity<JobLevel> {
    /**
     * 职务级别名称
     */
    @TableField("NAME")
    @NotEmpty(message = "名称项不能为空")
    private String name;
    /**
     * 职务级别代码
     */
    @TableField("CODE")
    private String code;


    /**
     * 描述
     */
    @TableField("REMARK")
    private String remark;

}

@NotEmpty(message = “名称项不能为空”) 则为校验属性不能为空

第二步:自然就是在controller层接受数据的地方标注启动校验

    /**
     * 创建职务级别
     *
     * @return
     */
    @RequestMapping(value = "/create")
    public
    @ResponseBody
    int createJobLevel(@Valid @RequestBody JobLevel jobLevel) {
        jobLevelService.createJobLevel(jobLevel);
        return 0;
    }

第三步:则就是添加全局异常处理类。

package org.go.show.cloud.users.config; 
 
import lombok.extern.slf4j.Slf4j; 
import org.go.show.common.http.DataSet; 
import org.springframework.http.ResponseEntity; 
import org.springframework.validation.FieldError; 
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; 
import org.springframework.web.bind.annotation.RestControllerAdvice;
 

@Slf4j
@RestControllerAdvice
public class ExceptionHandlerAdvice {


	/**
     * 校验为空的异常处理
	 * @param ex
     * @return
     */
	@ExceptionHandler(value = MethodArgumentNotValidException.class)
	@ResponseBody
	public ResponseEntity MethodArgumentNotValidException(MethodArgumentNotValidException ex) {
		FieldError fieldError = ex.getBindingResult().getFieldError();
		log.info("参数校验异常:{}({})", fieldError.getDefaultMessage(),fieldError.getField());
		return DataSet.fail(fieldError.getDefaultMessage());
	}

}

常用的校验规则:

@NotEmpty:作用在String、collection、map、数组上,不能为null,size > 0
@NotBlank: 只能用于String,不能为null,也不可以是" ",即trim()后长度大于0
@@NotNull:作用于任何类型,不能为null,可以为空
@AssertTrue:必须为true
@AssertFalse:必须为false
@Min(value):必须为一个数字,且值大于等于指定的值
@Max(value):必须为一个数字,且值小于等于指定的值
@Size(max,min):限制参数大小范围
@Future:必须是一个将来的日期
@Past:必须是一个过去的日期
@Pattern(value):指定正则

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章