【问题标题】:How do I insert dynamic text into Spring MVC error messages?如何在 Spring MVC 错误消息中插入动态文本?
【发布时间】:2012-01-30 03:50:38
【问题描述】:

我有一个在 Tomcat 中运行的 Spring MVC 应用程序,它运行良好。

我需要做的一件事是使用我在运行时获得的文本自定义错误消息。我对 Spring 或 Java 资源包都不是特别熟悉。我已经在我的.properties 文件中尝试过这个:

exception=Something bad, m'kay? {0}

但这会在<form:errors> 输出中逐字重复。

两个问题:

(1) 如何将运行时文本提供给控制器中的Errors 对象,以及 (2) 如何格式化属性文本以包含该运行时文本。

【问题讨论】:

    标签: java spring-mvc internationalization


    【解决方案1】:

    您可以简单地在Errors 中使用rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) api 来包含您的运行时文本。

    如果我们将此 api 应用于您在问题中所述的错误消息 errors.rejectValue(<your_command_field>, exception, new Object[]{<your_runtime_string>}, "Something bad, m'kay? fine")

    【讨论】:

    • 我仍然不清楚我的运行时文本是如何合并到预设资源文本中的。
    • 该 API 将您的消息文本加载到内存中,并用您以相同顺序作为对象数组传递的动态字符串替换那些占位符(如 {0}、{1}...)并返回细绳。即 {0} 将替换为 Object[0],{1} 将替换为 Object{1}...
    • 这是不工作的位。我从 收到的消息是“有什么不好的,请看 {0}”。 “{0}”没有替换为我的文字。
    • 如果您可以添加有关如何添加错误的控制器代码,那就太好了...
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2012-04-15
    相关资源
    最近更新 更多