我在春季训练中使用百里香,
<span th:text="#{home.welcome}">Welcome Default Message</span>
如果在messages.properties中找不到密钥,我有
??home.welcome_en_US??
我不想翻译messages.properties中的每条消息。我想要#34;欢迎默认消息&#34;在找不到翻译密钥消息时在html页面中写入。
我怎么能这样做?
答案 0 :(得分:3)
可能不再相关,但以下对我有用。我正在运行Thymeleaf 3.0.7.RELEASE。
<span th:text="${#strings.defaultString(#messages.msgOrNull('home.welcome'),'Welcome Default Message')}"/>
如果未找到消息,则将null传递给#string.defaultString调用,当给定null参数时,将返回“Welcome Default Message”。
更多http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#strings
答案 1 :(得分:2)
仅在翻译存在的情况下有条件地显示元素
<p th:if="${#messages.msgOrNull('not.so.important.message')}" th:text="#{not.so.important.message}"></p>
在您的情况下可以用作:
<span>
<th:block th:if="${#messages.msgOrNull('not.so.important.message')}" th:text="#{not.so.important.message}" />
<th:block th:unless="${#messages.msgOrNull('not.so.important.message')}">Welcome Default Message</th:block>
</span>
如果您想要显示默认文本,那么这不是最优雅的解决方案。
请查看百里香[{3}}的#messages实用工具方法。
也许你会找到更优雅的解决方案。但是,我的例子仍然解决了你的问题。
答案 2 :(得分:1)
<span th:text="${#messages.msgOrNull('home.welcome')?:'Welcome Default Message'}"></span>