2015-11-19 2 views
0

Если значение столбца равно null, DisplayTag печатает пустую строку. Вот исходный код делает, что в методе org.displaytag.model.Column#getValue:Как модифицировать пустое значение столбца в displaytag?

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

мне интересно, если есть способ, чтобы переопределить и отображать конкретное значение, а не пустая строка. То, что я ищу, является универсальным/автоматическим решением, потому что в противном случае я мог бы обрабатывать это вручную, проверяя, является ли мой атрибут, соответствующий столбцу, нулевым, и при необходимости возвращает конкретный символ ...

ответ

1

Вы можете использовать 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> 
+0

На самом деле, это своего рода то, что я делаю сейчас. ..., но даже ваше решение не является общим, потому что мне нужно указать декоратор для каждого столбца каждой таблицы в моем приложении, что на самом деле не является автоматическим/общим. Я попытался переопределить 'tld файл',' TableTag' и 'Column' DisplayTag, но у меня возникают некоторые проблемы, потому что мне пришлось использовать рефлексию, и это стало действительно беспорядочным ... – Mitchapp

+0

Ну, я закончил это потому, что мне не удалось найти автоматическое/общее решение ... Поэтому мне пришлось добавить атрибут декоратора к каждому столбцу ... – Mitchapp

Смежные вопросы