在 Spring Boot 中使用 ConstraintValidator 时是否可以更改值?

乔纳森

我有一个字符串字段,可能在前导和尾随处包含空格。我想修剪这些空格并使用ConstraintValidator. 如果文本为空,我想返回空。

在查看链接上显示的实现示例时,我不确定如何创建一个获取字符串并返回字符串而不是方法的isValid()方法。那么,如何根据给定的场景实施这种方法?

工具箱

使用杰克逊 JsonDeserialize 注释来做到这一点。

例子:

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;

import java.io.IOException;

public class TrimWhiteSpace extends StdDeserializer<String> {

  private static final long serialVersionUID = -4993230470571124275L;

  public TrimWhiteSpace() {
    this(null);
  }

  protected TrimWhiteSpace(final Class<?> vc) {
    super(vc);
  }

  @Override
  public String deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
    return p.getText() == null ? null : p.getText().trim();
  }
}

您可以使用此注释,如下所示:

public class Request {

    @JsonDeserialize(using = TrimWhiteSpace.class)
    private String name;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring-Boot UnitTest:ConstraintValidator中的@Value

在spring boot中使用opsForValue增加值时是否可以设置过期时间

Spring不会创建ConstraintValidator

使用Spring ConstraintValidator进行枚举的javax.validation.UnexpectedTypeException

我可以在Spring Boot中使用MessageBodyReader吗?

Spring Boot可以在“一键式”程序中使用

SpringRunner是否应在Junit 5的Spring Boot中使用

Spring Boot Service中我的自定义constraintvalidator之前的Json消息解析失败

将@Future和LocalDate的自定义ConstraintValidator添加到Spring Boot项目

在Spring Boot中使用@CrossOrigin

在Spring Boot中使用Pageable

在Spring Boot中使用@Profile

在Spring Boot中使用Disruptor

在Spring Boot中使用REST API时出错

在Spring Boot中使用@EnableAutoConfiguration时出现名称错误

Spring Boot:是否可以在带有胖子的任意目录中使用外部application.properties文件?

如何在ConstraintValidator中使用@Autowired?

在Spring Boot中使用JPA保存时,是否有办法获取“刷新”的保存实体?

在XwsSecurityInterceptor中使用SpringPlainTextPasswordValidationCallbackHandler时使用Spring Security身份验证失败的Spring Boot

在Spring Boot中使用RestTemplate时long值始终为null

当我在枚举中使用属性值时出现 Spring Boot 错误

在 Spring Boot 中使用 Mockito 模拟 JsonNode

如何在Spring Boot中使用KeyHolder?

在Spring -boot中使用ForEach进行迭代

在Docker中使用Spring Boot Actuator?

在 Maven 项目中使用 spring boot

在 Spring Boot 中使用 JSON HttpMessageConverters

在Spring Boot中使用@TestPropertySource覆盖@PropertySource

如何在Spring Boot中使用CommonsMultipartResolver