From b29f92cecc0a786aac47db7b092afd58d25d2248 Mon Sep 17 00:00:00 2001 From: wanghu Date: Tue, 25 Aug 2026 15:01:31 +0800 Subject: [PATCH] =?UTF-8?q?class=20id=20=E4=B8=8D=E5=85=81=E8=AE=B8null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/SchHistoryController.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/yunhai/bschclassmanage/controller/api/SchHistoryController.java b/src/main/java/com/yunhai/bschclassmanage/controller/api/SchHistoryController.java index b9f7bdb..5718c4a 100644 --- a/src/main/java/com/yunhai/bschclassmanage/controller/api/SchHistoryController.java +++ b/src/main/java/com/yunhai/bschclassmanage/controller/api/SchHistoryController.java @@ -10,8 +10,10 @@ import com.yunhai.bschclassmanage.service.IStudentClassHistoryService; import com.yunhai.bschclassmanage.utils.UserContext; import com.yunhai.platform.utils.exception.DException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; +import java.beans.PropertyEditorSupport; import java.util.List; import java.util.Map; @@ -24,6 +26,25 @@ public class SchHistoryController { @Autowired private IStudentClassHistoryService studentClassHistoryService; // 使用接口 + /** + * 将 Integer 参数收到的 "null"/空串 统一当作 null,使方法内能进入并触发业务校验, + * 而不是在 Spring 类型转换阶段直接抛 MethodArgumentTypeMismatchException。 + */ + @InitBinder + public void initBinder(WebDataBinder binder) { + binder.registerCustomEditor(Integer.class, new PropertyEditorSupport() { + @Override + public void setAsText(String text) { + String t = (text == null) ? null : text.trim(); + if (t == null || t.isEmpty() || "null".equalsIgnoreCase(t)) { + setValue(null); + } else { + setValue(Integer.valueOf(t)); + } + } + }); + } + @GetMapping("getClass") public HistorySchClassVO GetClassFirst(Integer classId) { if (classId == null || classId <= 0) {