如何将 Thymeleaf 显示的字符串大写到页面中?

How can I capitalize a string showed by Thymeleaf into a page?

我正在开发一个 Spring MVC 应用程序,它使用 Thymeleaf 作为模板引擎,我正在尝试将显示在我的页面中的一些字符串大写。在我的页面上,我有这样的东西:

<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> 标记中,我在 menuItem 对象的 desFnz 属性 中显示了一个字符串。

它工作正常,我的问题是我想将所有字符都大写,所以我尝试这样做:

th:text="${#strings.capitalize(menuItem.desFnz)}"

使用 #strings.capitalize() 但它不起作用,实际上在我的页面中我仍然获得文本但没有大写。为什么?我错过了什么?我该如何解决这个问题?

#strings.capitalize(menuItem.desFnz) 只会将第一个字符大写,而 #strings.toUpperCase(menuItem.desFnz) 会将整个字符串转换为大写。 Here is the documentation for the Strings class.

你可以通过

$string.toLowerCase()$string.toUpperCase()

只是补充 Pradeep Pati 的观点。 如果您在 spring 引导项目中使用它,您的某些值来自 messages.properties

like 在 messages.properties 文件中,你有类似的东西:

email.dailyAlert.greeting.newTemplate = Dear {0},

然后要用值代替 {0}(在 Title 的情况下),您需要像下面这样写。

<p th:text="#{email.dailyAlert.greeting.newTemplate(${#strings.capitalize(orgSlug)})}"></p>

最终输出将是:

尊敬的组织,