如何在JSF中有条件地生成元素

时间:2014-09-29 14:16:01

标签: jsf jsf-2

我的表单中有一个简单的输入文本元素。

用户可以对该表单采取两种可能的操作:1)批准表单,2)拒绝表单。因此,表单底部有2个按钮供用户单击。

如果用户点击approvecomment inputField应该是可选的。如果用户点击reject,则需要comment inputField。

以下是表单的简单表示:

<h:form>
    <p:inputText id="comment" required="???" .../>

    <p:commandButton id="approve" ... />
    <p:commandButton id="reject" ... />
</h:form>

2 个答案:

答案 0 :(得分:1)

试试这个。

<h:form id="forma">
    <p:inputText id="comment" 
                 value="#{userView.firstname}" 
                 title="comment" 
                 required="#{not empty param[reject.clientId]}"/>
    <p:message for="comment"/>

    <p:commandButton id="approve" 
                     binding="#{approve}" 
                     value="approve" 
                     process="@form" 
                     update="@form"/>
    <p:commandButton id="reject" 
                     binding="#{reject}" 
                     value="reject" 
                     process="@form" 
                     update="@form"/>
</h:form>

答案 1 :(得分:1)

您的问题与Dynamic required validation for different buttons?类似。

修改required属性,如下所示:

<h:form id="form">
    <p:inputText id="comment" required="#{not empty param['form:reject']}" ... />
    <p:commandButton id="approve" ... />
    <p:commandButton id="reject" ... />
</h:form>