【发布时间】:2014-01-29 10:01:20
【问题描述】:
我正在使用 jsf 和 Primefaces 组件。我需要根据输入值单击命令按钮。这是我的html代码:
<h:form id="mainform">
<p:panel id="panelform" header="Email Extractor" >
<h:panelGrid id="formulaire" columns="2">
<h:panelGroup id="formblock" layout="block" >
<p:panelGrid columns="2">
<p:outputLabel for="Emailsnbr" value="Enter the emails'number:" />
<p:inputText id="Emailsnbr" type="number" requiredMessage="Emails number is required"
value="#{mailMB.number}" required="true" label="Emailsnbr">
</p:inputText>
</p:panelGrid>
</h:panelGroup>
</h:panelGrid>
<c:if test="#{mailMB.number gt 10}">
<p:commandButton value="Extract" style="width: 8%;height: 100%" update="tableemails, :confirmPurchase, :mainform" id="extractbutton" ajax="true" widgetVar="ButtonExtract"
actionListener="#{mailMB.searchEmails()}"
oncomplete="if (args && !args.validationFailed) purchase.show();"/>
</c:if>
<c:if test="#{mailMB.number lt 11}">
<p:commandButton value="Extract" style="width: 8%;height: 100%" update="tableemails, :confirmPurchaseTest, :mainform" id="extractbuttonTest" ajax="true" widgetVar="ButtonExtract"
actionListener="#{mailMB.searchEmails()}"
oncomplete=" if (args && !args.validationFailed) emailsList.show();"/>
</c:if>
</p:dialog>
</p:panel>
</h:form>
标签<c:if test="#{mailMB.number lt 11}"> 中的commandButton 总是被调用,而不是标签<c:if test="#{mailMB.number gt 10}"> 中的命令按钮,我输入9 或15 作为数字输入的值。
任何解释和帮助如何使这项工作?
【问题讨论】:
-
唯一的区别是
oncomplete属性吗?那为什么不在那里获取所需的值呢? -
@mabi 是的,只有 oncomplete 属性不同。我没有得到你的建议你能说清楚吗?
标签: jsf if-statement primefaces