这似乎是任何一个Java项目都需要的一个非常普遍的东西。 但我却找不到任何可以满足这个目的的东西。
我曾经使用过一个叫做Stripes Framework的网络框架,它有注解驱动的验证器,并通过他们的验证器API进行自动格式化。
比如说,你可以在你的控制器上定义这些字段。
@Validate(maxlength = ModelConstants.NAME_MAX_LENGTH, converter = CapitializeFullyTypeConverter.class)
private String name;
@Validate(maxlength = ModelConstants.NAME_MAX_LENGTH, converter = EmailTypeConverter.class)
private String email;
这些字段将被定义在你的控制器动作Bean上,所有的用户输入将根据指定的规则自动进行验证和格式化。
如果有人将他们的电子邮件地址输入为:"",那么它就会自动被验证和格式化。"[email protected] "那么它就会被自动格式化为: "[email protected]"
我想找到这样的东西,在DTO中自动格式化数据。
如果没有这样的东西,通常的处理方式是什么? 大家肯定不会为DTO中的每个getter编写自定义格式化函数吧?
如果你使用Spring Mvc,你可以访问格式化API。有预先存在的注解在这里。org.springframework.format.annotation
包中的日期和数字格式化。
如果您需要自定义格式化规则,您可以编写您自己的规则,并通过 FormattingConversionServiceFactoryBean
.
请看这里的一些例子。https:/docs.spring.iospring-frameworkdocs3.2.0.RC1referencehtmlvalidation.html。