JSF复合组件和f:convertNumber

时间:2012-03-24 09:00:55

标签: jsf java-ee composite-component

我的复合组件中的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 个答案:

答案 0 :(得分:2)

JSTL流控制标签不适用于复合材料,复合材料本身在重复的JSF组件中引用。当即将实例化复合时,JSTL标记仅运行一次。在重复的JSF组件中,最终只有一个实例,它会被多次渲染。 JSTL标记在视图构建期间运行(读取:在复合组件实例化期间),而不是在视图渲染时间期间(读取:复合组件需要生成HTML时)。

<c:choose><c:when>替换为rendered属性,

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

或创建标记文件而不是复合组件。

另见: