跟着hsp学springmvc--数字格式化介绍

这篇具有很好参考价值的文章主要介绍了跟着hsp学springmvc--数字格式化介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本数据类型和字符串类型的自动转换
<%@ 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)等等。

跟着hsp学springmvc--数字格式化介绍

注解中的pattern可以指定输入的数据格式,如果不满足格式则会报错。


验证以及国际化

1. 对输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息。
2. 对于验证表单数据,springMVC 提供了很多实用的注解, 这些注解由 JSR 303 验证框架提
供.
● JSR 303 验证框架
1. JSR 303 是 Java 为 Bean 数据合法性校验提供的标准框架,它已经包含在 JavaEE 中
2. JSR 303 通过在 Bean 属性上标注类似于 @NotNull、@Max 等标准的注解指定校验规则,
并通过标准的验证接口对 Bean 进行验证

跟着hsp学springmvc--数字格式化介绍

Hibernate Validator 是 JSR 303 的一个参考实现,除支持所有标准的校验注解外,它还支
持以下的扩展注解: 

 文章来源地址https://www.toymoban.com/news/detail-458917.html

跟着hsp学springmvc--数字格式化介绍

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

跟着hsp学springmvc--数字格式化介绍

 

 

到了这里,关于跟着hsp学springmvc--数字格式化介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java LocalDateTime】LocalDateTime获取时间信息、格式化、转换为数字时间戳

    文章目录 正文         一、描述         二、基本使用 1、获取LocalDateTime时间 2、时间比较 3、获取基本时间信息: 4、格式化 / 反格式化 5、转换为数字时间戳 6、数字时间戳转为LocalDateTime         LocalDateTime是Java 8引入的日期和时间API (java.time包)中的一个类, 不包含

    2024年02月03日
    浏览(50)
  • java中BigDecimal的介绍及使用,BigDecimal格式化,BigDecimal常见问题

    java中BigDecimal的介绍及使用,BigDecimal格式化,BigDecimal常见问题 java中BigDecimal的介绍及使用(二) BigDecimal是Java在java.math包中提供的 线程安全 的API类。BigDecimal是Java中用于表示任意精度数字的类,它可以表示无限长度的小数, BigDecimal 通常支持任意位数的小数部分 ,用来对超过

    2024年02月16日
    浏览(38)
  • 电脑E盘被不小心格式化了?别急,介绍三种数据恢复方法

    电脑E盘格式化后如何恢复数据?意外的电脑E盘格式化或许是每个人都遇到过的问题。然而,当您发现您的重要数据已经丢失时,您可能会感到沮丧甚至绝望。但请不要担心。在本文中,我们将介绍一些有助于您找回数据的方法,希望能够帮助您有效解决电脑E盘格式化后数据

    2024年02月09日
    浏览(45)
  • Linux嵌入式学习之Ubuntu入门(二)磁盘文件介绍及分区、格式化等

    Linux嵌入式学习之Ubuntu入门(一)基本命令、软件安装、文件结构、编辑器介绍 Linux嵌入式学习之Ubuntu入门(二)磁盘文件介绍及分区、格式化等 Linux嵌入式学习之Ubuntu入门(三)用户、用户组及文件权限 Linux嵌入式学习之Ubuntu入门(四)Makefile Linux嵌入式学习之Ubuntu入门(五

    2023年04月11日
    浏览(70)
  • Python实验一基本数据类型针对用元组创建的5*5矩阵,格式化分行输出元素并分别计算两个主对角线元素之和;

    又到了自闭环节了,做个实验报告差点自闭,自己写的真的是很长的代码才实现,加油吧 这个根据参考网上大佬的方法进行了一些优化,在这里给大家提供参考。 输出结果: 对大家有帮助的话,记得关注点个赞哈!

    2024年02月16日
    浏览(46)
  • vscode 无法格式化python代码、无法格式化C++代码(vscode格式化失效)另一种解决办法:用外部工具yapf格式化(yapf工具)

    神马情况,我的vscode死活不能格式化python代码,还有C++代码也不能格式化,json代码都能格式化,为啥到python、C++就不行了。。。。 (格式化json代码) (格式化python代码) 都无反应。。。 弄了半天解决不了。。。只能用外部工具解决了,就是麻烦点 搞了个外部工具yapf来格

    2024年02月05日
    浏览(85)
  • 使用vscode格式化文档无效(vue代码格式化文档无效)

    问题: 最近在写代码的时候,vscode使用格式化文档不管用。 原因: 单页面使用大量element组件和html代码导致,vscode识别不了。 解决方案: 1、 打开设置,点击右侧的图标打开settings.json文件,在文件中注入代码。 settings.json文件位置,vscode左下角:  设置页面右上角:  在

    2024年02月16日
    浏览(76)
  • DBeaver中使用外部格式化程序对进行sql格式化

    本文介绍了如何在DBeaver中使用pgFormatter、sqlprase、sqlformatter等外部格式化程序对sql进行格式化。 目录 一、pgFormatter 1.准备工作 2.DBeaver中进行配置 二、sqlprase 1.准备工作 2.在DBeaver中配置 三、sql-formatter 1.准备工作 2.在DBeaver中配置 pgFormatter本质是perl脚本,所以需要perl运行环境支

    2024年01月25日
    浏览(62)
  • 【vscode 格式化】prettier 格式化之后添加逗号,与eslint冲突

    最近格式化文件的时候老是添加逗号,保存的时候会eslint在格式化一遍,将逗号删掉;就感觉不是很舒服; 有两种方法, 一、配置 .prettierrc 文件; 文件配置,可直接用,配合eslint使用足够了 JSON文件是不支持备注的,cv过去时要删掉注释 2.就是在设置的搜索框中输入“vet

    2024年02月12日
    浏览(84)
  • 日期格式化的最佳实践:如何在Java中处理日期格式化

    当涉及到日期格式化时,了解正确的方式和最佳实践是至关重要的。 日期格式化是将日期转换为特定格式的过程,以便在应用程序开发中更好地展示、存储或交互。 以下内容展示常用的三种方式 在Java中,你可以使用java.time.format.DateTimeFormatter类来格式化日期,并将格式化后

    2024年02月07日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包