转义包含必填字段的primefaces / jsf页面

时间:2013-03-05 02:17:54

标签: validation jsf primefaces

我有一个带

的jsf页面

<h:inputText required="true">属性。 当我点击我的添加按钮时,如果该字段为空,我想看到错误。

我有一个<f:message>来显示它。

但是如何将该字段空白的页面转义(取消)?在我的情况下,它会不断发布错误消息,我必须在字段中输入一些内容才能转到另一个页面。

3 个答案:

答案 0 :(得分:4)

如果您的取消按钮是 POST 请求,例如<p:commandButton><h:commandButton><p:commandLink><h:commandLink>

您可以将取消按钮放在包含 <h:inputText> 的表单之外,以便不提交表单

<h:form>
    <h:inputText value="#{bean.string}" required="true"/>
</h:form>
<h:form>
     <p:commandButton value="Cancel" action="anotherpage.xhtml"/>
</h:form>


如果您在没有任何操作或方法调用的情况下进行导航,则可以使用 GET 请求,例如<h:button><p:button><h:link><h:outputLink>

示例:

 <h:form>
    <h:inputText value="#{bean.string}" required="true"/>
    <p:button value="Cancel" outcome="anotherpage.xhtml"/>
 </h:form>

答案 1 :(得分:1)

您可以在immediate="true"中使用<p:commandButton>。然后它将跳过验证。

例如:

<p:commandButton action="#{managedBean.action}" value="Cancel" immediate="true" />

答案 2 :(得分:1)

如果您想取消或离开,请不要在提交时处理表单。

即。不要做

<h:form>
    ...
    <p:commandButton value="Cancel" action="#{bean.cancel}" />
</h:form>

但只是做

<h:form>
    ...
    <p:commandButton value="Cancel" action="#{bean.cancel}" process="@this" />
</h:form>

或者,如果您仅以cancel()方法返回导航结果

,那就更好了
<h:form>
    ...
    <p:button value="Cancel" outcome="otherpage.xhtml" />
</h:form>