springboot服务器端表单数据校验

springboot服务器端数据-实现添加用户功能

  • 创建项目
  • 修改pom文件
<properties>
  		<java.version>1.8</java.version>
  		<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    	<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
  	
<dependencies>
  			<!-- spring-boot启动器 -->
	  	<dependency>
	      <groupId>org.springframework.boot</groupId>
	      <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>
		    <!-- thymeleaf启动器 -->
	  	<dependency>
	      <groupId>org.springframework.boot</groupId>
	      <artifactId>spring-boot-starter-thymeleaf</artifactId>
	    </dependency>
</dependencies>
  • 添加新增用户功能,用控制台输出代替持久层

从页面收集数据,传入controller进行输出;

  • 实体类
public class Users {
	private String name;
	private String password;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Users [name=" + name + ", password=" + password + ", age=" + age + "]";
	}
	public Users(String name, String password, Integer age) {
		super();
		this.name = name;
		this.password = password;
		this.age = age;
	}
}
  • 编写controller
@Controller
public class UsersController {
	@RequestMapping("/addUser")
	public String showPage() {
		return "add";
	}
	
	@RequestMapping("/save")
	public String save(Users user) {
		System.out.println(user);	//输出从页面收集到的数据
		return "ok";
	}
}
  • 编写页面
    add.html
<body>
	<form th:action="@{/save}" method="post">
		用户名:<input type="text" name="name"><br>
		密码:<input type="text" name="password"><br>
		年龄:<input type="text" name="age"><br>
		<input type="submit" value="确定">
	</form>
</body>

ok.html

<body>
	操作成功!!!
</body>
  • 控制台输出结果即可

springboot服务器端-数据校验

  • springboot对表单数据校验的技术特点:
    springboot中使用Hibernate-validator校验框架;
使用流程:

①在实体类的属性上添加非空校验;@NotBlank
或者:@NotBlank(message="用户名不能为空")

@NotBlank
private String name;

②开启对实体类的数据校验;@Valid例:开启对user对象的数据校验。

public String save(@Valid Users user) {
		System.out.println(user);
		return "ok";
}

③注入BindingResult对象,封装了校验结果。注意:users取名,不要改名,为Users的首字母小写。
注意:要修改名称,需要使用@ModelAttribute("name")进行修改,(@ModelAttribute("aa") Users user)

@RequestMapping("/save")
public String save(@Valid Users users,BindingResult result) {
		if(result.hasErrors()) {
			return "add";
		}
		System.out.println(users);
		return "ok";
}

④在页面中获取提示信息,使用th:errorth:errors="${users.name}"会根据users.name的属性名作为key,去BindingResult取错误信息。因为BindingResult会根据Users实体类的属性名作为错误信息的key

注意th:errors="${users.name}"取结果时,如果没有,会报java.lang.IllegalStateException错。例如第一次进入add.html时,并没有一个名为users的对象。下面代码会出错!!!

<form th:action="@{/save}" method="post">
		用户名:<input type="text" name="name"><font color="red" th:errors="${users.name}"></font><br>
		密码:<input type="text" name="password"><font color="red" th:errors="${users.password}"></font><br>
		年龄:<input type="text" name="age"><font color="red" th:errors="${users.age}"></font><br>
		<input type="submit" value="确定">
</form>

springboot服务器端数据-解决异常

  • 解决上节错误:

showPage方法中注入一个Users对象。改对象会保存在ModelAndView中,这时就不会出现users不存在的错误了。

@Controller
public class UsersController {
	@RequestMapping("/addUser")
	public String showPage(Users user) {
		return "add";
	}
	
	@RequestMapping("/save")
	public String save(@Valid Users users,BindingResult result) {
		if(result.hasErrors()) {
			return "add";
		}
		System.out.println(users);
		return "ok";
	}
}

springboot服务器端数据-其他校验规则

  • 可以组合使用
注解作用
@NotBlank判断字符串是否为null或者空串,去掉收尾空格。
@NotEmpty判断字符串是否为null或者空串,不去掉收尾空格。
@Length判断字符的长度,包含最大或者最小。
@Min判断数值的最小值
@Max判断数值的最大值
@Email判断邮箱是否合法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以使用Thymeleaf模板引擎来处理表单数据的提交。以下是一个简单的例子: 1. 在pom.xml中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 2. 创建一个表单页面(form.html): ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Form</title> </head> <body> <form th:action="@{/submit}" method="post"> <input type="text" name="name" placeholder="Name"/> <input type="email" name="email" placeholder="Email"/> <input type="submit" value="Submit"/> </form> </body> </html> ``` 在这个表单页面中,我们使用Thymeleaf模板引擎来设置表单的提交地址为“/submit”,并设置表单中的输入框的name属性。 3. 创建一个控制器(FormController.java): ```java @Controller public class FormController { @GetMapping("/form") public String form() { return "form"; } @PostMapping("/submit") public String submit(@RequestParam String name, @RequestParam String email) { System.out.println("Name: " + name); System.out.println("Email: " + email); return "redirect:/form"; } } ``` 在这个控制器中,我们使用@GetMapping注解来处理访问“/form”的请求,并返回form.html页面。同时,我们使用@PostMapping注解来处理表单的提交,通过@RequestParam注解来获取表单中的数据,并输出到控制台中。最后,我们使用redirect来重定向到表单页面。 4. 运行程序,访问“http://localhost:8080/form”,填写表单并提交。 以上就是使用Spring Boot处理表单数据的简单例子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值