如果列的值为null,则DisplayTag将输出一个空的String。
这是在org.displaytag.model.Column#getValue方法中执行此操作的源代码:

if (object == null || "null".equals(object)) //$NON-NLS-1$
{
    if (!this.header.getShowNulls())
    {
        object = TagConstants.EMPTY_STRING;
    }
}


我想知道是否有一种方法可以覆盖它并显示特定值而不是空String。我正在寻找的是通用/自动解决方案,因为否则我可以通过测试与列对应的属性是否为null并在需要时返回特定字符来手动处理该问题。

最佳答案

您可以根据需要使用Decorator自定义任何列的值:

例子

http://demo.displaytag.org/displaytag-examples-1.2/example-decorator.jsp

标签参考:

http://www.displaytag.org/10/tagreference-displaytag-12.html

因此创建一个类:

public class MyCustomColumnDecorator implements DisplaytagColumnDecorator{

    public Object decorate(Object columnValue, PageContext pageContext, MediaTypeEnum media) {
        return value == null ? "some string" : value;
    }
}


在标记中为您要用于以下内容的任何列指定此名称:

<display:table name="someList">
  <display:column sortable="true" title="ID"/>
  <display:column property="email" autolink="true"/>
  <display:column property="description" title="Comments" decorator="com.test.MyCustomColumnDecorator"/>
</display:table>

关于java - 如何修改displaytag中列的空值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33801754/

10-10 17:59