我有这样的messages.properties:
tablas.menu.paises=Pa\u00EDses
tablas.menu.regiones=Regiones
tablas.menu.anhos=A\u00F1os
tablas.menu.universidades=Universidades
tablas.menu.usuarios=Usuarios
在。html中,我有一个菜单,其中显示每个项目的th:each:
<li class="nav-item" th:each="menu : ${menus}">
<a th:text="#{tablas.menu.${menu.nombre}}"></a>
</li>
对于每个“ $ {menus}中的菜单”,menu.nombre具有值paises,regiones,anhos ...但是,百里香无法识别#{}中的模型变量,这在找不到消息时在视图中给了我错误:
??tablas.menu.${menu.nombre}_es_ES??
配置还可以,如果我更改对#{tablas.menu.regiones}的调用,则会得到“ regiones”,依此类推。有没有办法使用这样的模型变量从messages.properties动态调用消息?
谢谢。
您可以使用#messages
utility object:
#messages
或者您可以使用<a th:text="${#messages.msg('tablas.menu.' + menu.nombre)}" />
创建字符串:
literal substitution
我建议仅将预处理作为最后的手段,因为错误的值可能会导致运行时错误。 (尽管他们确实为此工作。)