跟着hsp学springmvc--数字格式化介绍
1.跟着hsp学springmvc--数字格式化介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 基本数据类型和字符串类型的自动转换< br ><%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> < html > < head > < title >Title</ title > </ head > < body > < h3 >添加妖怪~~</ h3 > <!-- 这里的表单,我们使用 springMVC 的标签来完成 特别说明几点: 1. SpringMVC 表单标签在显示之前必须在 request 中有一个 bean, 该 bean 的属性 和表单标签的字段要对应! request 中的 key 为: form 标签的 modelAttrite 属性值, 比如这里的 monsters 2. SpringMVC 的 form:form 标签的 action 属性值中的 / 不代表 WEB 应用的根目 录. --> < form:form action="save" method="POST" modelAttribute="monster"> 妖怪名字: < form:input path="name"/> < form:errors path="name"/> < br >< br > 妖怪年龄~: < form:input path="age"/> < form:errors path="age"/> < br >< br > 电子邮件: < form:input path="email"/> < form:errors path="email"/> < br >< br > 生日: < form:input path="birthday"/> < form:errors path="birthday"/> < br >< br > 薪水: < form:input path="salary"/> < form:errors path="salary"/> < br >< br > < input type="submit" value="添加妖怪"/> </ form:form > </ body > </ html > |
比如通过表单提交数据给springmvc时,输入的”28“字符串就会自动地转成Integer类型的数据保存在Model中
对于特殊数据类型和字符串的转换要使用注解
比如日期(@DateTimeFormat),货币(@NumberFormat)等等。
注解中的pattern可以指定输入的数据格式,如果不满足格式则会报错。
验证以及国际化
1. 对输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息。
2. 对于验证表单数据,springMVC 提供了很多实用的注解, 这些注解由 JSR 303 验证框架提
供.
● JSR 303 验证框架
1. JSR 303 是 Java 为 Bean 数据合法性校验提供的标准框架,它已经包含在 JavaEE 中
2. JSR 303 通过在 Bean 属性上标注类似于 @NotNull、@Max 等标准的注解指定校验规则,
并通过标准的验证接口对 Bean 进行验证
Hibernate Validator 是 JSR 303 的一个参考实现,除支持所有标准的校验注解外,它还支
持以下的扩展注解:
Controller使用这些注解的验证必须在参数列表前添加@Valid注解来标明,
@RequestMapping(value = "/save") public String save(@Valid Monster monster, Errors errors, Map<String,Object>map){ System.out.println(monster); System.out.println("============"); for (Map.Entry<String,Object> entry : map.entrySet()) { System.out.println(entry.getKey()+" "+entry.getValue()); } System.out.println("============="); if(errors.hasErrors()){ List<ObjectError> allErrors = errors.getAllErrors(); for (ObjectError allError : allErrors) { System.out.println(allError); } return "data_valid/monster_addUI"; } return "data_valid/success"; }
Error类用来存储前台输入的不符合规范的错误,并解释具体的错误信息,前台通过spring标签来回显具体的错误信息。
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>是引入spring的标签
通过<form:errors path="?"/>来指定回显的具体的属性的错误信息,可以通过自定义来实现回显的信息。
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>添加妖怪~~</h3> <!-- 这里的表单,我们使用 springMVC 的标签来完成 特别说明几点: 1. SpringMVC 表单标签在显示之前必须在 request 中有一个 bean, 该 bean 的属性 和表单标签的字段要对应! request 中的 key 为: form 标签的 modelAttrite 属性值, 比如这里的 monsters 2. SpringMVC 的 form:form 标签的 action 属性值中的 / 不代表 WEB 应用的根目 录. --> <form:form action="save" method="POST" modelAttribute="monster"> 妖怪名字: <form:input path="name"/> <form:errors path="name"/> <br><br> 妖怪年龄~: <form:input path="age"/> <form:errors path="age"/> <br><br> 电子邮件: <form:input path="email"/> <form:errors path="email"/> <br><br> 生日: <form:input path="birthday"/> <form:errors path="birthday"/> <br><br> 薪水: <form:input path="salary"/> <form:errors path="salary"/> <br><br> <input type="submit" value="添加妖怪"/> </form:form> </body> </html>
国际化错误信息需要配置具体的文件,还需要在springmvc的配置文件中进行配置。
如果属性验证需要满足多种要求,可以把验证注解组合使用以达到效果,例如:
要求age属性字段不能为空且必须在1~100之间
@NotNull(message = "年龄不能为空") @Range(min = 1,max = 100) private Integer age; @NotNull(message = "姓名不能为空") @NotEmpty private String name; @NotNull(message = "生日不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date birthday; @NotNull(message = "薪水不能为空") @NumberFormat(pattern = "###,###.##") private float salary;
数据类型转换校验核心类-DataBinder
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!