如果列的值为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/