自定义值在 Liferay SearchContainer 中的显示方式

Customizing how values get displayed in a Liferay SearchContainer

我的 Liferay 实体 Person 有一个 <column name="mother" type="long" />,它指向 Person 的另一个实例的主键。这个 long 在我创建的 SearchContainer table 中显示为一个数字:

    <liferay-ui:search-container-column-text
        name="category"
        property="category"
    />

现在,我不想显示很长,而是显示此人的姓名。所以我写道:

    <%
        String motherName =
            PersonLocalServiceUtil.getPerson( person.getMother() )
                .getName();
        }
    %>

    <liferay-ui:search-container-column-text
        name="mother"
        value="<%= motherName %>"
        property="mother"
    />

问题:此列中显示的值仍然是 long 数字,而不是名称。即使在重建和重新启动之后。

我做错了什么?

检查SearchContainerColumnTextTag的执行情况:

public int doEndTag() {
    ...
    if (Validator.isNotNull(_property)) {
        _value = ...
    }

如您所见,您不能同时设置 propertyvalue。只需设置 value 即可。