我在重构模板时遇到了困难。我在一个模板中多次引用了有限数量的枚举值。 (为了清楚起见,在代码片段中我仅指示了一小部分)
<span th:if="${shipment.supplier == **T(com.example.backorderServer.model.Supplier).XXX**}"></span>
</td><!--Shipped orders-->
<td>
<th:block th:if="${shipment.supplier == **T(com.example.backorderServer.model.Supplier).YYY**}">
<span th:if="${shipment.status == **T(com.example.backorderServer.model.ShipmentStatus).PREPARED**}"></span>
<span th:if="${shipment.status == **T(com.example.backorderServer.model.ShipmentStatus).SHIPPED**}"><input type="submit" value="⇨" th:formaction="@{/api/administration/modifyShipments/__${shipment.idFromSupplier}__/delivered}"></span>
</th:block>
<span th:if="${shipment.supplier == **T(com.example.backorderServer.model.Supplier).XXX**}"></span>
</td><!--Action (Recieve to Reiven stock)-->
<td>
<span th:if="${shipment.supplier == **T(com.example.backorderServer.model.Supplier).YYY**}"></span>
<th:block th:if="${shipment.supplier == **T(com.example.backorderServer.model.Supplier).XXX**}">
当需要将枚举转移到其他包时就会出现困难。目前我只看到一种手动调整路径的方法,我想避免这种情况。 直观上,它要求在模板中指定类似变量的内容,这些变量将引用每个枚举值一次。并在将来使用它们,而不是像“T(com.example.backorderServer.model.Supplier).XXX”这样的链接
supplierXXX = T(com.example.backorderServer.model.Supplier).XXX;
请告诉我,有什么方法可以实现这种方法吗?
我尝试搜索 Thymeleaf 全局变量并找到了这个示例
<body th:with="supplierXXX=${T(com.example.backorderServer.service.model.Supplier).XXX}">
它成功了。
<th:block th:if="${shipment.supplier == supplierXXX}">
这个工作正常。但我设法仅以这种方式交换对 1 个枚举值的引用。 我如何扩展这个块来声明几个变量?
<body th:with="supplierXXX=${T(com.example.backorderServer.service.model.Supplier).XXX}; supplierYYY=${T(com.example.backorderServer.service.model.Supplier).YYY}">
上面的片段没有解析。
您必须使用逗号而不是分号。有关文档,请参阅https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#local-variables
示例:
<body th:with="supplierXXX=${T(com.example.backorderServer.service.model.Supplier).XXX},
supplierYYY=${T(com.example.backorderServer.service.model.Supplier).YYY}">