Конвертер не может разбогатеть: строки 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} для отображения преобразованного значения.