📅  最后修改于: 2020-12-04 08:43:00             🧑  作者: Mango
Spring MVC验证用于限制用户提供的输入。为了验证用户的输入,Spring 4或更高版本支持并使用Bean验证API。它可以验证服务器端和客户端应用程序。
Bean验证API是Java规范,用于通过注释将约束应用于对象模型。在这里,我们可以验证长度,数字,正则表达式等。除此之外,我们还可以提供自定义验证。
由于Bean验证API只是一个规范,因此需要实现。因此,为此,它使用了Hibernate Validator。 Hibernate Validator是完全兼容的JSR-303 / 309实现,允许表达和验证应用程序约束。
让我们看看一些常用的验证注释。
Annotation | Description |
---|---|
@NotNull | It determines that the value can’t be null. |
@Min | It determines that the number must be equal or greater than the specified value. |
@Max | It determines that the number must be equal or less than the specified value. |
@Size | It determines that the size must be equal to the specified value. |
@Pattern | It determines that the sequence follows the specified regular expression. |
在此示例中,我们创建一个包含输入字段的简单表单。在此,(*)表示必须输入相应的字段。否则,表格会产生错误。
pom.xml
org.springframework
spring-webmvc
5.1.1.RELEASE
org.apache.tomcat
tomcat-jasper
9.0.12
javax.servlet
servlet-api
3.0-alpha-1
javax.servlet
jstl
1.2
org.hibernate.validator
hibernate-validator
6.0.13.Final
Employee.java
package com.javatpoint;
import javax.validation.constraints.Size;
public class Employee {
private String name;
@Size(min=1,message="required")
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
在控制器类中:
package com.javatpoint;
import javax.validation.Valid;
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;
@Controller
public class EmployeeController {
@RequestMapping("/hello")
public String display(Model m)
{
m.addAttribute("emp", new Employee());
return "viewpage";
}
@RequestMapping("/helloagain")
public String submitForm( @Valid @ModelAttribute("emp") Employee e, BindingResult br)
{
if(br.hasErrors())
{
return "viewpage";
}
else
{
return "final";
}
}
}
web.xml
SpringMVC
spring
org.springframework.web.servlet.DispatcherServlet
1
spring
/
spring-servlet.xml
index.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
Click here...
viewpage.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
Username:
Password(*):
final.jsp
Username: ${emp.name}
Password: ${emp.pass}
输出:
让我们提交表单而不输入密码。
现在,我们输入密码,然后提交表单。
如果您不使用Maven,请下载休眠验证程序jar。