spring-mvc - Spring 注解 @NotNull 和 @Size 不起作用
问题描述
我创建了一个简单的页面项目,它检查单个输入数据字段“名称”,如果它为空或大小小于 5,它必须显示错误消息。
目前 BindingResult 认为一直没有错误。
Spring.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- Step 3: Add support for component scanning -->
<context:component-scan base-package="com.mvc" />
<!-- Step 4: Add support for conversion, formatting and validation support -->
<mvc:annotation-driven/>
<!-- Step 5: Define Spring MVC view resolver -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
学生班级:
package com.mvc;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Student {
@NotNull(message = "IsRequired!")
@Size(min = 5, message = "must be greater than 5!")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
控制器:
package com.mvc;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
@Controller
public class StudentController {
@RequestMapping("/")
public String showPage(Model model){
model.addAttribute("student", new Student());
return "index";
}
@RequestMapping("/processForm")
public String processForm(
@Valid @ModelAttribute("student") Student student,
BindingResult theBindingResult) {
if (theBindingResult.hasErrors()) {
return "index";
} else {
return "student-confirm";
}
}
}
如果需要,我可以发布 web.xml 和 jsp 页面。
解决方案
删除了以前版本的 Tomcat(7.0) 并安装了最新版本。
推荐阅读
- python - 有没有办法在arduino上保存python脚本?
- asp.net-core - 带有 IIS 的 DotNetCore 2.2 应用程序无法正常工作 - HTTP 错误 500.0 - ANCM 进程内处理程序加载失败
- arrays - 使用索引展开 JSON 对象/将 n-triples 反序列化为分层 Excel
- dynamics-crm - 如何查看 Dynamics365 表?
- android - React Native 0.60 - Release Bundle/Build 缺少 ic_launcher_round
- android - RxJava2 同时执行 Completable 和 Observable 并处理两者的结果
- javascript - 无法调用未定义的方法“indexOf” - Google App Script
- mongodb - 如何在 mongodb 中查询多个集合(不使用 $lookup)?
- google-apps-script - 有没有更有效的方法可以使用 GmailApp.search() 从 Gmail 中获取任意数量的线程?
- flutter - opacity 值的变化没有反映在应用中