是否有用于用户输入的Java格式库?
这似乎是几乎所有Java项目都需要的一件非常常见的事情。然而,我找不到任何能达到这个目的的东西 我曾经使用一个名为Stripes framework的web框架,它有注释驱动的验证器,并通过验证器API自动格式化 示例:是否有用于用户输入的Java格式库?,java,spring,spring-mvc,dto,Java,Spring,Spring Mvc,Dto,这似乎是几乎所有Java项目都需要的一件非常常见的事情。然而,我找不到任何能达到这个目的的东西 我曾经使用一个名为Stripes framework的web框架,它有注释驱动的验证器,并通过验证器API自动格式化 示例: @Validate(maxlength = ModelConstants.NAME_MAX_LENGTH, converter = CapitializeFullyTypeConverter.class) private String name; @Validate(maxl
@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上定义,所有用户输入将根据指定的规则自动验证和格式化
如果有人将其电子邮件地址输入为:TEST@TEST.COM"
然后它将自动格式化为:test@test.com"
我想找到类似这样的东西来自动格式化DTO中的数据
如果没有类似的情况,通常的处理方法是什么?当然,不是每个人都在为DTO中的每个getter编写自定义格式函数吗?如果您使用的是Spring Mvc,那么您可以访问格式化API。 日期和数字格式的
org.springframework.format.annotation
包中有预先存在的注释
如果需要自定义格式规则,您可以编写自己的格式规则,并通过formattingconversionservicecfactorybean
进行注册
请参阅此处的一些示例:如果您使用的是Spring Mvc,则可以访问格式化API。 日期和数字格式的
org.springframework.format.annotation
包中有预先存在的注释
如果需要自定义格式规则,您可以编写自己的格式规则,并通过formattingconversionservicecfactorybean
进行注册
请参阅此处的一些示例:假设:“格式化程序”的含义如下
当您要求使用基于注释的“格式化程序”时,您的意思是@Validate
注释及其参数。转换器可以参数化为:
(类)用于将此参数转换为其对象表示形式的转换器类
在Web MVC上下文中,这意味着转换器用于转换请求参数,即输入Web请求提供的源值。然后将转换后的值作为目标值存储到(DTO)对象的属性中
示例:(DTO)字符串的转换
Web请求与参数名称email和值字符串TEST@EXAMPLE.COM
。这应该转换为小写,并在DTO的属性(也称为属性或字段)电子邮件中作为值test@example.com
DTO的Spring注释
Spring框架还使用了请求验证和请求转换的概念。它还允许配置这些在DTO或类及其属性上驱动的注释
验证利用了JavaBean验证标准(JSR-303)注释,如@Valid
和@Length
转换是HttpConverters的一部分,用于对对象(DTO)的响应/请求进行序列化/反序列化。因此,Spring允许将对象关系映射器(ORM)框架或库作为(例如Maven)依赖项引入。他们带来了自己关于与他们对话的注释
Fasterxml的Jackson
例如,Jackson(ORM)使用注释实现简单的字符串转换——但仅适用于日期或数字等非字符串字段(据我所知)。
它还允许通过注释@JsonSerialize
和@JsonSerialize
完全定制序列化程序和反序列化程序。
请注意,尽管Jackson中的许多注释都是用“Json”命名的,但它们大多也适用于XML或CSV等其他数据格式(表示)
带Jackson的字符串为小写
你的问题被问到了杰克逊:并得到了回答
另见
- DZone:
- 比尔东(2019):
@Validate
注释及其参数。转换器可以参数化为:
(类)用于将此参数转换为其对象表示形式的转换器类
在Web MVC上下文中,这意味着转换器用于转换请求参数,即输入Web请求提供的源值。然后将转换后的值作为目标值存储到(DTO)对象的属性中
示例:(DTO)字符串的转换
Web请求与参数名称email和值字符串TEST@EXAMPLE.COM
。这应该转换为小写,并在DTO的属性(也称为属性或字段)电子邮件中作为值test@example.com
DTO的Spring注释
Spring框架还使用了请求验证和请求转换的概念。它还允许配置这些在DTO或类及其属性上驱动的注释
验证利用了JavaBean验证标准(JSR-303)注释,如@Valid
和@Length
转换是HttpConverters的一部分,用于对对象(DTO)的响应/请求进行序列化/反序列化。因此,Spring允许将对象关系映射器(ORM)框架或库作为(例如Maven)依赖项引入。他们带来了自己关于与他们对话的注释
Fasterxml的Jackson
例如,Jackson(ORM)使用注释实现简单的字符串转换——但仅适用于日期或数字等非字符串字段(据我所知)。
它还允许通过注释@JsonSerialize
和@JsonSerialize
完全定制序列化程序和反序列化程序。
请注意,尽管Jackson中的许多注释都以