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

时间:2016-03-15 15:30:12

标签: spring spring-mvc thymeleaf capitalization

我正在使用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()但它无法正常工作,事实上在我的页面中,我仍然可以获取文本但不是大写的。为什么?我错过了什么?我该如何解决这个问题?

3 个答案:

答案 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()