如何从html优化百里叶实用程序调用?



我有一个百里叶html页面,显示来自数据库@Entity的所有行。

问题:实体有一个复杂的字段映射到一个休眠的AttributeConverter。当我想在html中将字段显示为String时,我必须调用该转换器将复杂字段转换为字符串表示形式,如:

<td th:text="${{T(org.exmaple.domain.utils.AddressConverter).convertToString(row?.address)}}" />

与资料来源:

//assume I have the address only in this format
public class AddressConverter<Address, String> {
public String convertToString(Address address) {
if (address == null) return null;
return address.getZip() + " " + address.getTown();
}
}

问题:如何优化thymelef中的这些实用程序导入?我在找一些简单的东西,比如:

<td th:text="${{addressUtil.convertToString(row?.address)}}" />

让我们从您的需求开始回溯。以下是您希望在thyymleaf模板中包含的内容…

<td th:text="${addressConverter.convertToString(row?.address)}" />

要像这样调用addressConverter的函数convertToString,您需要在模型中拥有可用的对象。基本上在你的控制器中有一个静态变量。

private static final AddressConverter addressConverter = new AddressConverter();

添加到模型后…

model.addAttribute("addressConverter", addressConverter);

我刚刚发现可以简单地使用@参数访问spring bean,如:

<div th:text="${@addressConverter.convertToString()}">...</div> 

当然这里假定它不是一个静态实用程序。

如果有人知道如何更好地将静态实用程序暴露给thymleaf,请回答。

相关内容

  • 没有找到相关文章

最新更新