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

打印 上一主题 下一主题

主题 919|帖子 919|积分 2757

  1. 基本数据类型和字符串类型的自动转换<br><%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <html>
  4. <head>
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8. <h3>添加妖怪~~</h3>
  9. <form:form action="save" method="POST" modelAttribute="monster">
  10.     妖怪名字: <form:input path="name"/> <form:errors path="name"/> <br><br>
  11.     妖怪年龄~: <form:input path="age"/> <form:errors path="age"/> <br><br>
  12.     电子邮件: <form:input path="email"/> <form:errors path="email"/> <br><br>
  13.     生日: <form:input path="birthday"/> <form:errors path="birthday"/> <br><br>
  14.     薪水: <form:input path="salary"/> <form:errors path="salary"/> <br><br>
  15.     <input type="submit" value="添加妖怪"/>
  16. </form:form>
  17. </body>
  18. </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注解来标明,
  1. @RequestMapping(value = "/save")
  2.     public String save(@Valid Monster monster, Errors errors, Map<String,Object>map){
  3.         System.out.println(monster);
  4.         System.out.println("============");
  5.         for (Map.Entry<String,Object> entry : map.entrySet()) {
  6.             System.out.println(entry.getKey()+"   "+entry.getValue());
  7.         }
  8.         System.out.println("=============");
  9.         if(errors.hasErrors()){
  10.             List<ObjectError> allErrors = errors.getAllErrors();
  11.             for (ObjectError allError : allErrors) {
  12.                 System.out.println(allError);
  13.             }
  14.             return "data_valid/monster_addUI";
  15.         }
  16.         return "data_valid/success";
  17.     }
复制代码
Error类用来存储前台输入的不符合规范的错误,并解释具体的错误信息,前台通过spring标签来回显具体的错误信息。
  1. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>是引入spring的标签<br>通过<form:errors path="?"/>来指定回显的具体的属性的错误信息,可以通过自定义来实现回显的信息。<br><br>
复制代码
  1. <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <html>
  4. <head>
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8. <h3>添加妖怪~~</h3>
  9. <form:form action="save" method="POST" modelAttribute="monster">
  10.     妖怪名字: <form:input path="name"/> <form:errors path="name"/> <br><br>
  11.     妖怪年龄~: <form:input path="age"/> <form:errors path="age"/> <br><br>
  12.     电子邮件: <form:input path="email"/> <form:errors path="email"/> <br><br>
  13.     生日: <form:input path="birthday"/> <form:errors path="birthday"/> <br><br>
  14.     薪水: <form:input path="salary"/> <form:errors path="salary"/> <br><br>
  15.     <input type="submit" value="添加妖怪"/>
  16. </form:form>
  17. </body>
  18. </html>
复制代码
国际化错误信息需要配置具体的文件,还需要在springmvc的配置文件中进行配置。
 如果属性验证需要满足多种要求,可以把验证注解组合使用以达到效果,例如:
要求age属性字段不能为空且必须在1~100之间
  1.     @NotNull(message = "年龄不能为空")
  2.     @Range(min = 1,max = 100)
  3.     private Integer age;
  4.     @NotNull(message = "姓名不能为空")
  5.     @NotEmpty
  6.     private String name;
  7.     @NotNull(message = "生日不能为空")
  8.     @DateTimeFormat(pattern = "yyyy-MM-dd")
  9.     private Date birthday;
  10.     @NotNull(message = "薪水不能为空")
  11.     @NumberFormat(pattern = "###,###.##")
  12.     private float salary;
复制代码
数据类型转换校验核心类-DataBinder
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表