Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于用户输入的Java格式库?_Java_Spring_Spring Mvc_Dto - Fatal编程技术网

是否有用于用户输入的Java格式库?

是否有用于用户输入的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

这似乎是几乎所有Java项目都需要的一件非常常见的事情。然而,我找不到任何能达到这个目的的东西

我曾经使用一个名为Stripes framework的web框架,它有注释驱动的验证器,并通过验证器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上定义,所有用户输入将根据指定的规则自动验证和格式化

如果有人将其电子邮件地址输入为: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中的许多注释都以