我有一个由displaytag标记库在JSP中生成的HTML表。我想抑制表中出现的任何零,即它们应该被空白单元格替换。有什么直截了当的方法可以做到这一点吗?

最佳答案

我发现这可以通过使用ColumnDecorator的自定义实现来实现。

public class SuppressZeroDecorator implements DisplaytagColumnDecorator {

    /* (non-Javadoc)
     * @see org.displaytag.decorator.DisplaytagColumnDecorator#decorate(java.lang.Object, javax.servlet.jsp.PageContext, org.displaytag.properties.MediaTypeEnum)
     */
    public Object decorate(Object rowObject, PageContext pageContext, MediaTypeEnum mediaType) {

        if (rowObject != null && rowObject.toString().trim().equals("0")) {
            return null;
        }

        return rowObject;
    }
}

应该为JSP中的每个列声明decorator,如下所示:
<display:column property="age" title="Age" decorator="com.example.ZeroColumnDecorator" />

10-05 21:23