From 1e2cd0e5e2cd66153529d33cc433aa92ca24be5a Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 25 Mar 2012 00:09:39 +0800 Subject: [PATCH] =?UTF-8?q?#13=20=E6=BC=94=E7=A4=BASpring=20MVC=E7=BB=93?= =?UTF-8?q?=E5=90=88Hibernate=20Valdiator=E7=9A=84=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E8=A1=A8=E5=8D=95=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/showcase/pom.xml | 5 +++++ .../examples/showcase/common/entity/User.java | 3 +++ .../showcase/common/web/UserDetailController.java | 10 +++++++++- .../src/main/webapp/WEB-INF/spring-mvc.xml | 2 ++ .../main/webapp/WEB-INF/views/common/userForm.jsp | 14 ++++---------- .../static/jquery-validation/1.9.0/validate.css | 4 ++-- 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml index fc7aa6de..04a49aef 100644 --- a/examples/showcase/pom.xml +++ b/examples/showcase/pom.xml @@ -133,6 +133,11 @@ javax.servlet servlet-api + + + org.hibernate + hibernate-validator + diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/common/entity/User.java b/examples/showcase/src/main/java/org/springside/examples/showcase/common/entity/User.java index 113fc597..e44a1d87 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/common/entity/User.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/common/entity/User.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; +import org.hibernate.validator.constraints.NotBlank; import org.springside.modules.utils.Collections3; import com.google.common.collect.Lists; @@ -36,6 +37,7 @@ public class User extends IdEntity { private List roleList = Lists.newArrayList(); //有序的关联对象集合 + @NotBlank public String getLoginName() { return loginName; } @@ -69,6 +71,7 @@ public class User extends IdEntity { this.salt = salt; } + @NotBlank public String getName() { return name; } diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/common/web/UserDetailController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/common/web/UserDetailController.java index 73a984aa..66877d5c 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/common/web/UserDetailController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/common/web/UserDetailController.java @@ -2,9 +2,12 @@ package org.springside.examples.showcase.common.web; import java.util.List; +import javax.validation.Valid; + import org.springframework.beans.factory.annotation.Autowired; 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.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,7 +37,12 @@ public class UserDetailController { } @RequestMapping(value = "save/{id}") - public String save(@ModelAttribute("user") User user, RedirectAttributes redirectAttributes) { + public String save(@Valid @ModelAttribute("user") User user, BindingResult bindingResult, Model model, + RedirectAttributes redirectAttributes) { + if (bindingResult.hasErrors()) { + return updateForm(model); + } + accountManager.saveUser(user); redirectAttributes.addFlashAttribute("message", "保存用户成功"); return "redirect:/common/user/"; diff --git a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml index 69e6caa4..4eeff136 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml +++ b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml @@ -24,4 +24,6 @@ + + diff --git a/examples/showcase/src/main/webapp/WEB-INF/views/common/userForm.jsp b/examples/showcase/src/main/webapp/WEB-INF/views/common/userForm.jsp index 39871ba7..3fa64a2c 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/views/common/userForm.jsp +++ b/examples/showcase/src/main/webapp/WEB-INF/views/common/userForm.jsp @@ -6,15 +6,7 @@ 综合演示用例 - - - - @@ -25,11 +17,13 @@ 管理用户
- + +
- + +
diff --git a/examples/showcase/src/main/webapp/static/jquery-validation/1.9.0/validate.css b/examples/showcase/src/main/webapp/static/jquery-validation/1.9.0/validate.css index d8a5d28e..3ddb950c 100644 --- a/examples/showcase/src/main/webapp/static/jquery-validation/1.9.0/validate.css +++ b/examples/showcase/src/main/webapp/static/jquery-validation/1.9.0/validate.css @@ -1,7 +1,7 @@ -label.error { +label.error,span.error{ background:url("images/unchecked.gif") no-repeat 0px 0px; padding-left: 16px; padding-bottom: 2px; font-weight: bold; color: #EA5200; -} \ No newline at end of file +}