Конвертер не может разбогатеть: строки dataGrid как пользовательские параметры

Мне нужен конвертер с пользовательскими параметрами, я сделал его, и он работает хорошо, за исключением случаев, когда я использую его с элементами строки, и я не могу понять, почему, идеи?

Примеры

Это хорошо работает:

<h:outputText value="#{bean.value}"> 
    <cc:converter param="#{bean.attribute}" />
</h:outputText>

также этот:

<h:outputText value="#{bean.value}"> 
    <cc:converter param="fixedValue" />
</h:outputText>

этот не работает вообще, параметр равен нулю внутри конвертера:

<rich:dataGrid value="#{bean.list}" var="row">
    <h:outputText value="#{row.value}"> 
        <cc:converter param="#{row.attribute}" />
    </h:outputText>
</rich:dataGrid>

1 ответ

Решение

Смотрите ссылку BalusC. Он описывает, почему ваш конвертер не работает. Конвертер без параметров прекрасно работает внутри Datatatable в JSF 1.2. Для имитации преобразования вы можете использовать метод getter в объекте, который представляет строку, подобную getConvertedValue, и переместить свой код из конвертера в этот метод. После этого в datatable вы можете вызвать #{row.convertedValue} для отображения преобразованного значения.

Другие вопросы по тегам