Составной компонент JSF и f: convertNumber - PullRequest
0 голосов
/ 24 марта 2012

У меня проблема с тегом f: convertNumber в моем составном компоненте.

<c:when test="#{cc.attrs.bean.dataTyp eq 'Double'}">
<h:outputText converter="javax.faces.Double" value="#{cc.attrs.bean.dataObject.data.value} ">
    <f:convertNumber groupingUsed="false" maxFractionDigits="5" minFractionDigits="3" />
</h:outputText>

Составной компонент вызывается в виде данных. Похоже, тег f: convertNumber будет игнорироваться.

1 Ответ

2 голосов
/ 24 марта 2012

Теги управления потоком JSTL не работают в композитах, на которые сами ссылаются внутри повторяющихся компонентов JSF.JSTL-теги запускаются только один раз, когда создается составной экземпляр.В конечном счете в повторяющемся компоненте JSF существует только один экземпляр составного объекта, который визуализируется несколько раз.Теги JSTL запускаются во время сборки представления (читай: во время создания составного компонента), а не во время рендеринга представления (читай: когда составной компонент должен генерировать HTML).

Либо замените <c:choose><c:when> на rendered атрибут,

<h:outputText ... rendered="#{cc.attrs.bean.dataTyp eq 'Double'}">
    <f:convertNumber ... />
</h:outputText>

или создать файл тегов вместо составного компонента.

См. Также:

...