资讯专栏INFORMATION COLUMN

SpringBoot非官方教程 | 第十九篇: 验证表单信息

rottengeek / 3107人阅读

这篇文篇主要简述如何在springboot中验证表单信息。在springmvc工程中,需要检查表单信息,表单信息验证主要通过注解的形式。

构建工程

创建一个springboot工程,由于用到了 web 、thymeleaf、validator、el,引入相应的起步依赖和依赖,代码清单如下:

</>复制代码

  1. org.springframework.boot
  2. spring-boot-starter-web
  3. org.springframework.boot
  4. spring-boot-starter-test
  5. test
  6. org.springframework.boot
  7. spring-boot-starter-thymeleaf
  8. org.hibernate
  9. hibernate-validator
  10. org.apache.tomcat.embed
  11. tomcat-embed-el
创建一个PresonForm的Object类

</>复制代码

  1. package com.forezp.entity;
  2. import javax.validation.constraints.Min;
  3. import javax.validation.constraints.NotNull;
  4. import javax.validation.constraints.Size;
  5. /**
  6. * Created by fangzhipeng on 2017/4/19.
  7. */
  8. public class PersonForm {
  9. @NotNull
  10. @Size(min=2, max=30)
  11. private String name;
  12. @NotNull
  13. @Min(18)
  14. private Integer age;
  15. public String getName() {
  16. return this.name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public Integer getAge() {
  22. return age;
  23. }
  24. public void setAge(Integer age) {
  25. this.age = age;
  26. }
  27. public String toString() {
  28. return "Person(Name: " + this.name + ", Age: " + this.age + ")";
  29. }
  30. }

这个实体类,在2个属性:name,age.它们各自有验证的注解:

</>复制代码

  1. @Size(min=2, max=30) name的长度为2-30个字符
  2. @NotNull 不为空
  3. @Min(18)age不能小于18
创建 web Controller

</>复制代码

  1. @Controller
  2. public class WebController extends WebMvcConfigurerAdapter {
  3. @Override
  4. public void addViewControllers(ViewControllerRegistry registry) {
  5. registry.addViewController("/results").setViewName("results");
  6. }
  7. @GetMapping("/")
  8. public String showForm(PersonForm personForm) {
  9. return "form";
  10. }
  11. @PostMapping("/")
  12. public String checkPersonInfo(@Valid PersonForm personForm, BindingResult bindingResult) {
  13. if (bindingResult.hasErrors()) {
  14. return "form";
  15. }
  16. return "redirect:/results";
  17. }
  18. }
创建form表单

src/main/resources/templates/form.html:

</>复制代码

  1. Name:Name Error
    Age:Age Error
注册成功的页面

src/main/resources/templates/results.html:

</>复制代码

  1. html>
  2. Congratulations! You are old enough to sign up for this site.
演示

启动工程,访问http://localhost:8080/:

如果你输入A和15,点击 submit:

如果name 输入N, age为空:

如果输入:forezp. 18

参考资料

https://spring.io/guides/gs/v...

源码下载

https://github.com/forezp/Spr...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71445.html

相关文章

  • SpringBoot官方教程 | 第九篇SpringBoot整合Redis

    摘要:经过上述两步的操作,你可以访问数据了。数据访问层通过来访问分钟过期单元测试启动单元测试,你发现控制台打印了单元测试通过源码下载参考资料 这篇文章主要介绍springboot整合redis 引入依赖 在pom文件中添加redis依赖: org.springframework.boot spring-boot-starter-data-redis 配置数据源 spri...

    csRyan 评论0 收藏0
  • SpringBoot官方教程 | 第十二篇:springboot集成apidoc

    摘要:首先声明下,是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了系列的完整性,所以标了个题。二准备工作安装完安装它的项目源码。输命令输入目录输出目录是我的工程名。 首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了springboot系列的完整性,所以标了个题。 一、apidoc简介 apidoc通过在你代码的注释来生成ap...

    xiaoxiaozi 评论0 收藏0
  • SpringBoot官方教程 | 第十一篇:SpringBoot集成swagger2,构建优雅的R

    摘要:另外很容易构建风格的,简单优雅帅气,正如它的名字。配置一些基本的信息。三写生产文档的注解通过注解表明该接口会生成文档,包括接口名请求方法参数返回信息的等等。四参考资料中使用构建强大的文档 swagger,中文拽的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气...

    荆兆峰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<