From aa576587e197511ad4907a41a22bd7c132648f60 Mon Sep 17 00:00:00 2001 From: GlowBlur Date: Tue, 16 Mar 2021 07:55:13 +0800 Subject: [PATCH] demo-validation --- demo-validation/.gitignore | 25 ++++++++++ demo-validation/pom.xml | 50 +++++++++++++++++++ .../validation/SpringBootDemoValidation.java | 20 ++++++++ .../validation/entity/PersonForm.java | 43 ++++++++++++++++ .../validation/ontroller/WebController.java | 42 ++++++++++++++++ .../src/main/resources/templates/form.html | 22 ++++++++ .../src/main/resources/templates/results.html | 5 ++ pom.xml | 1 + 8 files changed, 208 insertions(+) create mode 100644 demo-validation/.gitignore create mode 100644 demo-validation/pom.xml create mode 100644 demo-validation/src/main/java/com/xkcoding/validation/SpringBootDemoValidation.java create mode 100644 demo-validation/src/main/java/com/xkcoding/validation/entity/PersonForm.java create mode 100644 demo-validation/src/main/java/com/xkcoding/validation/ontroller/WebController.java create mode 100644 demo-validation/src/main/resources/templates/form.html create mode 100644 demo-validation/src/main/resources/templates/results.html 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 @@ + + + + spring-boot-demo + com.xkcoding + 1.0.0-SNAPSHOT + + 4.0.0 + + demo-validation + + + 8 + 8 + + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + demo-validation + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/demo-validation/src/main/java/com/xkcoding/validation/SpringBootDemoValidation.java b/demo-validation/src/main/java/com/xkcoding/validation/SpringBootDemoValidation.java new file mode 100644 index 000000000..39c4d7379 --- /dev/null +++ b/demo-validation/src/main/java/com/xkcoding/validation/SpringBootDemoValidation.java @@ -0,0 +1,20 @@ +package com.xkcoding.validation; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + *

+ * 启动类 + *

+ * + * @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 @@ + + + +
+ + + + + + + + + + + + + + +
Name:Name Error
Age:Age Error
+
+ + 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 @@ demo-flyway demo-pay demo-nacos + demo-validation pom