2

我有一个 jsf 页面

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

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

但是我怎样才能逃避(取消)该字段为空白的页面?就我而言,它不断发布错误消息,我必须在该字段中输入一些内容才能转到另一个页面。

4

3 回答 3

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>
于 2013-03-05T06:02:17.380 回答
2

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

例如:

<p:commandButton action="#{managedBean.action}" value="Cancel" immediate="true" />
于 2013-03-05T04:06:18.510 回答
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>
于 2013-03-13T18:33:36.170 回答