gpt4 book ai didi

java - 通过 javax 验证使用国际化时如何插入字段名称?

转载 作者:行者123 更新时间:2023-12-02 02:31:06 24 4
gpt4 key购买 nike

我正在使用带有 Spring Boot 和国际化的 javax 验证注释。所以我有以下字段:

@Size(min = 3, max = 3, message = "{javax.validation.constraints.Size.message}")
private String currencyCode;

美国资源包具有:

javax.validation.constraints.Size.message = size must be between {min} and {max}

因此,当该字段验证失败时,我会看到消息“大小必须在 3 到 3 之间”

但我想要的是这样的消息:

javax.validation.constraints.Size.message = {fieldName}'s size must be between {min} and {max}

这将导致消息“currencyCode 的大小必须在 3 到 3 之间”

这可能吗?我是否需要覆盖 bean 才能使其工作?字段名称是否有预定义属性?

最佳答案

您可以为 MethodArgumentNotValidException 创建处理程序

@ExceptionHandler(MethodArgumentNotValidException.class)
public Object handleMethodArgumentNotValidException(final MethodArgumentNotValidException e) { ...

您可以在其中调用

 e.getBindingResult().getFieldErrors();

这是包含有关无效字段错误的所有信息的集合,例如。字段名称,拒绝的值。

接下来,使用示例中的消息并使用 org.apache.commons.lang3 中的 StrSubstitutor。只需创建参数映射

键 --> 字段名称,值 --> 货币代码

当然你必须编写一些代码,但这是解决方案:)

关于java - 通过 javax 验证使用国际化时如何插入字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47098370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com