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

在javax验证中使用国际化时,如何插入字段名?

黄俊雄
2023-03-14
@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}
javax.validation.constraints.Size.message = {fieldName}'s size must be between {min} and {max}

这将导致消息“CurrencyCode's size must be between 3 and 3”

这可能吗?是否需要重写bean使其工作?字段名是否有预定义的属性?

共有1个答案

翁硕
2023-03-14

可以为MethodArgumentNotValidException创建处理程序

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

在它们内部,您可以调用

 e.getBindingResult().getFieldErrors();

这是与无效字段错误的所有信息的集合,例如。字段名,被拒绝的值。

在next中,使用示例中的message,并使用org.apache.commons.lang3中的StrSubstitutor。只需创建参数映射

键-->字段名,值-->当前代码

 类似资料:
  • 有人知道如何使用javax吗。IntelliJ中的验证包?我用的是Gradle,这个软件包不会像我用的其他软件一样自动导入。我还试着从jar网站下载,但也没用。我的Gradle项目“无法解析与javax相关的任何符号”。验证

  • 问题内容: Hibernate验证程序是否支持国际化。我看到了罐子,可以看到各种ValidationMessages.properties文件。 我们是否可以创建自己的将国际化的自定义错误消息?我不想使用Hibernate验证程序默认提供的错误消息。 我们需要使用我们自己的自定义消息,它们应该被国际化。 Hibernate验证程序支持哪些语言。在jar中,我看到了英语,法语,德语,土耳其语和蒙古语

  • 我是spring新手,特别是spring boot,我正在尝试使用国际化,到目前为止,我在普通控制器上使用的很好,但我无法使用spring数据rest进行Bean验证。 我正在使用以下代码启动应用程序: 我可以在控制器中很好地使用区域设置,但我不能让Bean验证尊重其他区域设置,它总是使用默认区域设置。 有什么帮助吗? 我在1.2.5版本中使用了sping-data-rest和sping-star

  • 问题内容: 我想知道如何在JavaScript中处理国际化。我用谷歌搜索,但没有得到令人信服的答案: JavaScript是否具有对国际化的本地支持? JavaScript中的i18n是什么? 如何处理日历,货币,日期等? 我已经阅读过JavaScript中的Internationalization。 问题答案: 旧版浏览器中的本地化支持很差。最初,这是由于ECMAScript语言规范中的短语如下

  • 在尝试使用JSR-303(hibernate Validator)验证模型时,我在将

  • 问题内容: 我的JavaScript代码是这样的: 看这里 : 我在文本输入中添加了必填项。但这不起作用如果文本输入为空,则当我单击“提交”时,不需要任何消息 有解决我问题的方法吗? 非常感谢你 问题答案: 您必须做三件事: 确保桌子周围有表格 移动之类的了 将按钮类型从更改为 查看演示- 小提琴