Pārlūkot izejas kodu

完善工作小结对象的数据校验

chenwen 3 gadi atpakaļ
vecāks
revīzija
dd151d78d1

+ 15 - 0
src/main/java/com/jpsoft/proj/kpi/controller/RequestValidateExceptionHandler.java

@@ -5,6 +5,9 @@ import java.util.Set;
 import javax.validation.ConstraintViolation;
 import javax.validation.ConstraintViolationException;
 
+import org.springframework.validation.BindException;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
@@ -17,6 +20,7 @@ public class RequestValidateExceptionHandler {
 	//处理请求参数格式错误 @RequestParam上validate失败后抛出的异常是javax.validation.ConstraintViolationException
 	@ExceptionHandler(ConstraintViolationException.class)
 	public RespVO constraintViolationExceptionHandler(ConstraintViolationException e) {
+		//e.printStackTrace();
 		Set<ConstraintViolation<?>> constraintViolations=e.getConstraintViolations();
 		StringBuilder error=new StringBuilder();
 		for(ConstraintViolation<?> itm : constraintViolations) {
@@ -26,4 +30,15 @@ public class RequestValidateExceptionHandler {
 		//jdk8  写法:String message = e.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.joining());
 		return RespVOBuilder.error(error.toString());//
 	}
+	
+	@ExceptionHandler(BindException.class)
+	public RespVO validationExceptionHandler(BindException e) {
+		//e.printStackTrace();
+		BindingResult bindingResult = e.getBindingResult();
+		StringBuilder error=new StringBuilder();
+		for (FieldError fieldError : bindingResult.getFieldErrors()) {
+			error.append(fieldError.getDefaultMessage()+";");
+		}
+		return RespVOBuilder.error(error.toString());
+	}
 }

+ 3 - 1
src/main/java/com/jpsoft/proj/kpi/controller/WorkSummaryController.java

@@ -5,11 +5,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -58,7 +60,7 @@ public class WorkSummaryController {
 	 * @return
 	 */
 	@PostMapping("saveDailyWorkSummary")
-	public RespVO  saveDailyWorkSummary(TaskSummary  newSummary) {
+	public RespVO  saveDailyWorkSummary(@Valid TaskSummary  newSummary) {
 		newSummary.updateSameUserId(newSummary.getUserid());
 		service.saveDailyWorkSummary(newSummary);
 		return RespVOBuilder.ok();

+ 10 - 1
src/main/java/com/jpsoft/proj/model/TaskSummary.java

@@ -2,6 +2,11 @@ package com.jpsoft.proj.model;
 
 import java.util.Date;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
 /**
    * 工作小结VO
  * @author hb
@@ -10,9 +15,11 @@ import java.util.Date;
 public class TaskSummary {
 
 	
-	
+	@NotBlank(message = "员工编号不能为空")
 	private String userid;
 	
+	@NotNull(message = "日报日期不能为空")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date dates;
 	
 	private String program;
@@ -33,6 +40,8 @@ public class TaskSummary {
 	
 	private String cid;
 	
+	
+	
 	public void updateSameUserId(String userId) {
 		this.pid=userId;
 		this.sid=userId;