跟着hsp学springmvc--数字格式化介绍_世界简讯

博客园   2023-05-25 22:23:43


(资料图片)

基本数据类型和字符串类型的自动转换<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title

添加妖怪~~

妖怪名字:

妖怪年龄~:

电子邮件:

生日:

薪水:

比如通过表单提交数据给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, Mapmap){        System.out.println(monster);        System.out.println("============");        for (Map.Entry entry : map.entrySet()) {            System.out.println(entry.getKey()+"   "+entry.getValue());        }        System.out.println("=============");        if(errors.hasErrors()){            List 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的标签通过来指定回显的具体的属性的错误信息,可以通过自定义来实现回显的信息。
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title

添加妖怪~~

妖怪名字:

妖怪年龄~:

电子邮件:

生日:

薪水:

国际化错误信息需要配置具体的文件,还需要在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