资讯专栏INFORMATION COLUMN

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

rottengeek / 3073人阅读

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

构建工程

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

      
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.hibernate
            hibernate-validator
        
        
            org.apache.tomcat.embed
            tomcat-embed-el
        
    
创建一个PresonForm的Object类
package com.forezp.entity;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
 * Created by fangzhipeng on 2017/4/19.
 */
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;
    }

    public String toString() {
        return "Person(Name: " + this.name + ", Age: " + this.age + ")";
    }
}

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

@Size(min=2, max=30) name的长度为2-30个字符
@NotNull 不为空
@Min(18)age不能小于18
创建 web Controller
@Controller
public class WebController extends WebMvcConfigurerAdapter {

    @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";
    }
}
创建form表单

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


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

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

html>
    
        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元查看
<