我有一个jsf页面
<h:inputText required="true">
属性。当我单击添加按钮时,如果字段为空,我希望看到一个错误。
我有一个<f:message>
来显示这个
但是,我如何转义(取消)该字段为空白的页面?在我的情况下,它不断地发布错误信息,我必须在字段中输入一些东西才能转到另一个页面。
如果您的取消按钮是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>
您可以在<p:commandButton>
中使用immediate="true"
。然后它将跳过验证。
<p:commandButton action="#{managedBean.action}" value="Cancel" immediate="true" />
如果你想取消或离开,就不要在提交时处理表单。
。不做
<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>