spring-mvc 表单验证
1.首先pom.xml需要引用两个jar包(spring-mvc需要的包这里就不赘述了),如下:

<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.2.Final</version> </dependency>
2.定义一个需要输入的对象Product

package cn.duanjt.pojo; import java.util.Date; import javax.validation.constraints.DecimalMin; import javax.validation.constraints.Size; import org.springframework.format.annotation.DateTimeFormat; public class Product { //定义验证规则 @DecimalMin("0.01") private int price; @Size(max=10,min=1) private String name; @DateTimeFormat(pattern="yyyy-MM-dd") private Date time; private String email; /** getter and setter,这里为了简洁就这么写了 **/ }
3.定义控制器

package cn.duanjt; import java.util.ArrayList; import java.util.List; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.validation.Errors; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; import com.google.gson.Gson; import cn.duanjt.pojo.Product; import cn.duanjt.pojo.Student; @Controller @RequestMapping("/student") public class StudentController { //注意:@Valid @RequestMapping("/save") public ModelAndView save(@Valid Product product, Errors errors) { if (errors.hasErrors()) { System.out.println("验证失败"); List<FieldError> fieldErrors = errors.getFieldErrors(); for (FieldError fe : fieldErrors) { System.out.println(fe.getField() + "\t" + fe.getDefaultMessage());//输出错误消息 } } else { System.out.println("验证成功"); } System.out.println(new Gson().toJson(product));//输出获取的对象 ModelAndView mv = new ModelAndView(); mv.addObject(product); mv.setView(new MappingJackson2JsonView()); return mv; } }
4.jsp代码测试如下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>首页</title> </head> <body> <form action="student/save.do" method="post"> <p> 单价:<input type="text" name="price" value="1" /> </p> <p> 名称:<input type="text" name="name" value="茄子" /> </p> <p> 日期:<input type="text" name="time" value="2018-07-21" /> </p> <p> 邮件:<input type="text" name="email" /> </p> <p> <input type="submit" value="提交"/> </p> </form> </body> </html>
最后附上验证规则:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗