【问题标题】:thymeleaf disable message argumentthymeleaf 禁用消息参数
【发布时间】:2018-12-18 04:06:28
【问题描述】:

是否可以在 arg {0} 输出不可用时禁用它? 示例:

messageSource.getMessage("my.message.property", new Object[]{12}, "fallback", LocaleContextHolder.getLocale());

这显示:

Child 12 Years old

现在有时我没有孩子的年龄,所以我的参数是:

messageSource.getMessage("my.message.property", null, "fallback", LocaleContextHolder.getLocale());

现在显示的是:

Child {0} Years old

是否可以禁用输出中的 {0}?

【问题讨论】:

  • 您希望您的 UI 显示“Child Years old”吗?用 if/else 包裹它并显示“儿童年龄未知”或类似的东西不是更好吗?
  • 不,真正的输出是“Child 12”。以上就是一个例子。
  • 我会使用两个不同的消息代码:“message.child-without-age=Child”和“message.child-with-age=Child: {0} 岁”。尝试同时使用单个“my.message.property”会限制您的灵活性。

标签: java spring-boot thymeleaf


【解决方案1】:

我找到了一个简单的解决方案:

message.replaceAll("\\s*\\{\\d+\\}\\s*", ""));

另一种解决方案是定义多个消息属性。一个有论据,另一个没有论据

【讨论】:

    【解决方案2】:

    我希望您寻找避免空/未定义的文件隐藏。如果参数不可用/为空,我们可以在 UI 中使用 if 条件,请查看此链接以供参考。

    Thymeleaf: check if a variable is defined

    【讨论】:

    • 不,这不是我要找的。但是我找到了解决方案(我贴出来了)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多