Max*_* R. 3 spring thymeleaf spring-boot
我试图通过连接变量的值并随后添加一些字符串来动态构建 var 的名称,因为我在运行时添加这些变量。像下面这样的东西应该有效,但事实并非如此。
th:text="${__#{myClass.getA().getB()}+'-result'__}"
Run Code Online (Sandbox Code Playgroud)
这可能吗?我不知道变量的名称,不幸的是我只能这样构造它。
是的,这是可能的,Thymeleaf 支持表达式预处理:
让我们从一些示例开始: 应使用 # 字符引用 message(i18n) 表达式。假设您的翻译文件中有 message.key。要在 Thymeleaf 中引用它,您必须使用
th:text="#{message.key}"
Run Code Online (Sandbox Code Playgroud)
在您的场景中,您的键名称是根据变量动态生成的,因此要在 thymeleaf 中对其进行预处理,您需要使用两个下划线 __
假设在您的上下文中您有一个名为 myModelVariable 的模型变量,其方法为 messagePrefix()。我们的例子变成:
th:text="#{__${myModelVariable.messagePrefix()}__}"
Run Code Online (Sandbox Code Playgroud)
这意味着 myModelVariable.messagePrefix() 将首先被处理,结果将用作键名,然后将其解析为用户友好的消息。
如果您还想在末尾添加静态部分,它将如下所示:
th:text="#{__${myModelVariable.messagePrefix()}__}+'*'"
Run Code Online (Sandbox Code Playgroud)
即使密钥也可以包含静态部分,因此这也是可以接受的:
th:text="#{__${myModelVariable.messagePrefix()}__.staticsuffix}+'*'"
Run Code Online (Sandbox Code Playgroud)
您可以在第 2.7 节中找到更多信息: https ://www.thymeleaf.org/doc/articles/standarddialect5minutes.html
| 归档时间: |
|
| 查看次数: |
3004 次 |
| 最近记录: |