Spring Boot 2 Thymeleaf服务器端表单验证实现详解

网友投稿 357 2023-07-11

Spring Boot 2 Thymeleaf服务器端表单验证实现详解

Spring Boot 2 Thymeleaf服务器端表单验证实现详解

这篇文章主要介绍了Spring Boot 2 Thymeleaf服务器端表单验证实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

表单验证分为前端验证和服务器端验证。

服务器端验证方面,java提供了主要用于数据验证的jsR 303规范,而Hibernate Validator实现了JSR 303规范。

项目依赖加入spring-boot-starter-thymeleaf时,默认就会加入Hibernate Validator的依赖。

开发环境:IntelliJ IDEA 2019.2.2

Spring Boot版本:2.1.8

新建一个名称为demo的Spring Boot项目。

1、pom.xml

org.springframework.boot

org.springframework.boot

spring-boot-starter-thymeleaf

org.springframework.boot

spring-boot-devtools

2、src/main/java/com/example/demo/User.java

package com.example.demo;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;

import javax.validation.constraints.Size;

public class User {

@NotBlank(message = "用户名不能为空")

String name;

@Length(min = 11, max = 11, message = "手机号长度必须11位")

String phone;

@Size(min = 6, max = 20, message = "密码长度6-20位")

String password;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

3、src/main/java/com/example/demo/FormController.java

package com.example.demo;

import org.springframework.stereotype.Controller;

import org.springframework.validation.BindingResult;

import org.springframework.validation.ObjectError;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import javax.validhttp://ation.Valid;

import java.util.List;

@Controller

public class FormController {

@RequestMapping("/{form}")

public String form(@PathVariable String form, @ModelAttribute User user){

return form;

}

@PostMapping("/submit")

public String submit(@Valid User user, BindingResult result){

if (result.hasErrors()) {

List list = result.getAllErrors();

for (ObjectError error : list) {

System.out.println(error.getDefaultMessage());

}

return "form";

}

//业务逻辑处理

return "form";

}

}

4、src/main/resources/templates/form.html

前端通过#fields对象输出错误信息有2种方式,1种是在每个字段后面输出,另1种是全部在一起输出。

启动服务后,浏览器访问http://localhost:8080/form,点击提交按钮,结果如下:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Spring Security中的HttpBasic登录验证模式
下一篇:静态方法中调用Spring注入过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~