开发手册 欢迎您!
软件开发者资料库

Spring MVC - Hibernate Validator示例

Spring MVC Hibernate Validator示例 - 从简单和简单的步骤学习Java Spring Framework 4.1.6版,从基本概念到高级概念,包括概述,环境设置,控制反转(IoC),依赖注入,bean范围,bean生命周期,内部bean,自动装配,不同模块,面向方面编程(AOP),数据库访问(JDBC),事务管理,Web MVC框架,Web流,异常处理,EJB集成和发送电子邮件等。

以下示例显示如何使用Spring Web MVC框架在表单中使用错误处理和验证器.首先,让我们使用一个有效的Eclipse IDE,并遵循以下步骤,使用Spring Web Framework开发基于动态表单的Web应用程序.

Step描述
1在包com下创建名为 TestWeb 的项目.it1352在Spring MVC中解释 -  Hello World章节.
2在com.it1352包下创建Java类Student,StudentController和StudentValidator.
3在jsp子文件夹下创建视图文件addStudent.jsp和result.jsp.
4下载Hibernate Validator库 Hibernate Validator .解压缩hibernate-validator-5.3.4.Final.jar以及下载的zip文件所需文件夹下的必需依赖项.把它们放在你的CLASSPATH中.
5创建SRC文件夹下的属性文件messages.properties.
6最后一步是创建源文件和配置文件的内容并导出应用程序,如下所述.

Student.java

package com.it1352; import org.hibernate.validator.constraints.NotEmpty;import org.hibernate.validator.constraints.Range;public class Student {   @Range(min = 1, max = 150)    private Integer age;   @NotEmpty   private String name;   private Integer id;   public void setAge(Integer age) {      this.age = age;   }   public Integer getAge() {      return age;   }   public void setName(String name) {      this.name = name;   }   public String getName() {      return name;   }   public void setId(Integer id) {      this.id = id;   }   public Integer getId() {      return id;   }}

StudentController.java

package com.it1352; import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.BindingResult;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class StudentController {   @RequestMapping(value = "/addStudent", method = RequestMethod.GET)   public ModelAndView student() {      return new ModelAndView("addStudent", "command", new Student());   }   @ModelAttribute("student")   public Student createStudentModel() {      return new Student();   }   @RequestMapping(value = "/addStudent", method = RequestMethod.POST)   public String addStudent(@ModelAttribute("student") @Validated Student student,       BindingResult bindingResult, Model model) {      if (bindingResult.hasErrors()) {         return "addStudent";      }      model.addAttribute("name", student.getName());      model.addAttribute("age", student.getAge());      model.addAttribute("id", student.getId());      return "result";   }}

messages.properties

NotEmpty.student.name = Name is required!Range.student.age = Age value must be between 1 and 150!

此处,密钥为< Annotation>.< object-name>.< attribute>.值是要显示的消息.

TestWeb-servlet.xml

                                          

这里,对于第一个服务方法 student(),我们已经传递了空白 Studentobject> 在名为"command"的ModelAndView对象中,因为spring框架需要名为"command"的对象,如果您使用的是< form:form> JSP文件中的标记.因此,当调用 student()方法时,它返回 addStudent.jsp 视图.

第二种服务方法将对 HelloWeb/addStudent URL上的POST方法调用addStudent().您将根据提交的信息准备模型对象.最后,将从service方法返回"result"视图,这将导致呈现result.jsp.如果使用验证器生成错误,则返回相同的视图"addStudent",Spring会自动从 BindingResult 中注入错误消息.

addStudent.jsp

<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>         Spring MVC Form Handling               

Student Information

                                                                                                                                                                                                                                                                                                      
Name
Age
id
           

在这里,我们使用< form:errors/>用path ="*"标记以呈现错误消息.例如 :

它将为所有输入验证呈现错误消息.我们正在使用< form:errors/>标记为path ="name"以呈现名称字段的错误消息.

例如 :

它将呈现名称和年龄字段验证的错误消息.

result.jsp

<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>         Spring MVC Form Handling            

Submitted Student Information

                                                                                                                                          
Name${name}
Age${age}
ID${id}
     

完成创建源文件和配置文件后,导出应用程序.右键单击您的应用程序,使用 Export →  WAR文件选项并将 HelloWeb.war 文件保存在Tomcat的webapps文件夹中.

现在,启动Tomcat服务器并确保您能够使用标准浏览器从webapps文件夹访问其他网页.尝试一下URL :   http://localhost:8080/TestWeb/addStudent 如果您输入了无效值,我们将看到以下屏幕.

弹簧验证结果