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):指定正則

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