c:如果在输入组件和数据表内部

时间:2016-10-27 20:22:25

标签: jsf-2

我有一个使用c的自定义组件:if确定要使用的ajax:

<composite:interface>
    <composite:attribute name="value" required="true" />
    <composite:attribute name="renderOnChange" type="java.lang.String"/>
</composite:interface>

<composite:implementation>
    <h:inputText value="#{cc.attrs.value}">
        <c:if test="#{not empty cc.attrs.renderOnChange}">
            <a4j:ajax event="change" render="#{cc.attrs.renderOnChange}" />
        </c:if>
        <c:if test="#{empty cc.attrs.renderOnChange}">
            <a4j:ajax event="change" render="#{somethingDifferent}" />
        </c:if>
    </h:inputText>
</composite:implementation>

当我尝试在数据表中使用该组件时会出现问题,因为c:ifs不起作用。是否有可用于显示a4j:ajax的JSF等效项,具体取决于属性?我已经尝试过ui:fragment和许多其他的ui标签来尝试实现这一点,但它们都不能在输入组件中工作。

我还想使用相同的方法来显示f:validators。

1 个答案:

答案 0 :(得分:0)

可能的方法是创建两个<h:inputText>组件,然后您可以使用rendered属性并在那里放置<c:if>标记中的条件。