diff --git a/demo-validation/.gitignore b/demo-validation/.gitignore
new file mode 100644
index 000000000..82eca336e
--- /dev/null
+++ b/demo-validation/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
\ No newline at end of file
diff --git a/demo-validation/pom.xml b/demo-validation/pom.xml
new file mode 100644
index 000000000..1106e0cda
--- /dev/null
+++ b/demo-validation/pom.xml
@@ -0,0 +1,50 @@
+
+
+ * 启动类 + *
+ * + * @author zhenghui + * @date 2021/3/15 13:19 + */ +@SpringBootApplication +public class SpringBootDemoValidation { + public static void main(String[] args) { + SpringApplication.run(SpringBootDemoValidation.class, args); + } + +} diff --git a/demo-validation/src/main/java/com/xkcoding/validation/entity/PersonForm.java b/demo-validation/src/main/java/com/xkcoding/validation/entity/PersonForm.java new file mode 100644 index 000000000..a62f4409f --- /dev/null +++ b/demo-validation/src/main/java/com/xkcoding/validation/entity/PersonForm.java @@ -0,0 +1,43 @@ +package com.xkcoding.validation.entity; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +/** + *+ * PersonForm实体类 + *
+ * + * @author zhenghui + * @date 2021/3/15 13:28 + */ +public class PersonForm { + @NotNull + @Size(min=2, max=30) + private String name; + + @NotNull + @Min(18) + private Integer age; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + @Override + public String toString() { + return "Person(Name: " + this.name + ", Age: " + this.age + ")"; + } +} diff --git a/demo-validation/src/main/java/com/xkcoding/validation/ontroller/WebController.java b/demo-validation/src/main/java/com/xkcoding/validation/ontroller/WebController.java new file mode 100644 index 000000000..2dea11c07 --- /dev/null +++ b/demo-validation/src/main/java/com/xkcoding/validation/ontroller/WebController.java @@ -0,0 +1,42 @@ +package com.xkcoding.validation.ontroller; + +import javax.validation.Valid; + +import com.xkcoding.validation.entity.PersonForm; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +/** + *+ * 控制器 + *
+ * + * @author zhenghui + * @date 2021/3/15 13:31 + */ +@Controller +public class WebController implements WebMvcConfigurer { + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/results").setViewName("results"); + } + + @GetMapping("/") + public String showForm(PersonForm personForm) { + return "form"; + } + + @PostMapping("/") + public String checkPersonInfo(@Valid PersonForm personForm, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return "form"; + } + + return "redirect:/results"; + } +} diff --git a/demo-validation/src/main/resources/templates/form.html b/demo-validation/src/main/resources/templates/form.html new file mode 100644 index 000000000..19e7f3478 --- /dev/null +++ b/demo-validation/src/main/resources/templates/form.html @@ -0,0 +1,22 @@ + + + + + + diff --git a/demo-validation/src/main/resources/templates/results.html b/demo-validation/src/main/resources/templates/results.html new file mode 100644 index 000000000..36735c5e7 --- /dev/null +++ b/demo-validation/src/main/resources/templates/results.html @@ -0,0 +1,5 @@ + + +Congratulations! You are old enough to sign up for this site. + + diff --git a/pom.xml b/pom.xml index 702799f5b..b82b24fff 100644 --- a/pom.xml +++ b/pom.xml @@ -71,6 +71,7 @@