我正在使用Thymeleaf作为模板引擎的Spring MVC应用程序,我正在尝试将一些字符串显示在我的页面中。在我的页面上,我有这样的事情:
<li class="com__nav-item" th:each="menuItem : ${#authentication.principal.listaFunzioniUtente}">
<a href="" class="com__nav-link centered">
<span class="blue-line animate scaleIn delay-3" style="font-size: 1.4em; text-align: center;" th:text="${#strings.capitalize(menuItem.desFnz)}"></span>
<span class="white-circle animate scaleIn delay-5"></span>
</a>
</li>
正如您在上一代码中看到的,在第一个<span>
标记中,我在desFnz
对象的menuItem
属性中显示了一个字符串。
它工作正常,我的问题是我想要大写所有角色,所以我试着这样做:
th:text="${#strings.capitalize(menuItem.desFnz)}"
使用#strings.capitalize()
但它无法正常工作,事实上在我的页面中,我仍然可以获取文本但不是大写的。为什么?我错过了什么?我该如何解决这个问题?
答案 0 :(得分:17)
#strings.capitalize(menuItem.desFnz)
只会将第一个字符大写,而#strings.toUpperCase(menuItem.desFnz)
会将整个字符串转换为大写字母。 Here is the documentation for the Strings class.
答案 1 :(得分:1)
只是补充 Pradeep Pati 的观点。
如果您在 spring boot 项目中使用它,其中一些值来自 messages.properties
像在messages.properties文件中,你有类似的东西:
email.dailyAlert.greeting.newTemplate = Dear {0},
然后要替换 {0} 的值(在 Title 情况下),您需要像下面这样写。
<p th:text="#{email.dailyAlert.greeting.newTemplate(${#strings.capitalize(orgSlug)})}"></p>
最终输出将是:
尊敬的组织,
答案 2 :(得分:0)
您可以通过
$string.toLowerCase()
或$string.toUpperCase()