java - 如何根据 thymeleaf 中的变量值打印不同的文本?

标签 java spring-mvc thymeleaf

<p th:text="|Commande no : ${expedition.idCommande}|" class="font-weight-bold"></p>

<p th:text="${expedition.etat}"></p>

expedition.etat 是一个 int,其值为 0、1 或 2

我希望第二段的内部文本为“准备中”、“已发送”或“已交付”,而不是 0、1、2。

我想我可以用 th:if 和 th:text 三个段落来解决问题; 或者也许我可以在我的探险对象中添加一个 getStatusAsText 方法; 但是没有更好的方法来实现这个吗?

最佳答案

您只需打开该值即可:

<div th:switch="${expedition.etat}">
    <p th:case="0">In preparation</p>
    <p th:case="1">Sent</p>
    <p th:case="2">Delivered</p>
    <p th:case="*">No state found</p>
</div>

您可以使用<th:block>如果您不想打印 HTML 标签。您可以考虑将默认情况设置为红色或您喜欢的错误颜色。请确保默认情况是最后一个。

如果您需要文本以多种语言显示,您将需要从消息包中打印这些值,但这超出了本问题的范围。

关于java - 如何根据 thymeleaf 中的变量值打印不同的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60918488/

相关文章:

java - Thymeleaf 模板无法评估与模型相关的表达式

java - JPA 通用字段

java - 新 Activity 因运行时异常和空指针异常而崩溃

java - 为什么我的 Thymeleaf 仅显示列表的最后一行

java - 如何在浏览器上显示pdf?

spring-mvc - 为什么我们不能从 java 中的 RequestBody 获取文件数据?

java - Spring 异常评估 SpringEL 表达式

java - 在单元测试中有一个 spring 上下文

Java:在类路径上加载和编辑属性文件

Spring MVC - 从所有拦截器中排除 Assets