当前位置: 首页 > 知识库问答 >
问题:

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

哈宪
2023-03-14

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

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

共有1个答案

和魁
2023-03-14

使用jackson 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;

}
 类似资料:
  • 我正在使用iBeacons并使用AltBeacon库。 我想问是否有可能改变最后一个信标被看到和didExitRegion被调用之间的时间。 如有任何建议,将不胜感激。

  • 为下面的代码生成的字节代码在类中创建一个字段。当为可变字段赋值时,原始委托不会更改。 有没有一种方法可以在运行时更改委托,同时保持实现? 该示例取自https://kotlinlang.org/docs/reference/delegation.html文档并经过编辑。

  • 问题内容: 例: 数组仍保留其原始值,是否可以通过迭代函数对数组元素进行写访问? 问题答案: 回调传递给元素,索引和数组本身。 编辑 -如注释中所述,该函数可以采用第二个参数,该参数将用作每次对回调的调用中的值: 第二个例子说明了自己是在回调中设置的。有人可能认为调用中涉及的数组可能是的 默认 值,但无论出于何种原因,它都不是。会如果没有提供第二个参数。 (注意:如果回调是一个函数,则上述内容不适

  • 问题内容: 如果您熟悉Bean验证框架,那么您将无法获得方法参数的名称。因此,如果对方法的第一个参数执行@NotNull约束,并且验证失败,则getPropertyPath将类似于“ arg1”。 我想创建自己的@NotNull版本,该版本可以采用例如@NamedNotNull(“ emailAddress”)的值。但是我不知道如何在验证器中覆盖#getPropertyPath?有什么办法做到这一

  • 在react组件中,通常不应在其中变异道具。此外,家长只能更改道具,不能直接更改状态。基于这两个事实,假设在任何componentDidUpdate调用中,例如。, 只读 这道具可能与prevProps不同,或者与此不同。状态可能与状态不同,但这两种情况不能同时发生?

  • 问题内容: 是否可以“监视”指令上的ui更改?像这样的东西: 问题答案: 是。您可以使用,如果你在属性利用插值。 但是,如果这不是一个插值属性,并且您希望它可以从应用程序中的其他位置更改(绝对不建议这样做,请阅读Common Pitfalls ),那么函数可以返回: 无论如何,对您来说最好的方法可能是更改更改元素类的代码。它何时更改?