我有一个带
的jsf页面 <h:inputText required="true">
属性。
当我点击我的添加按钮时,如果该字段为空,我想看到错误。
我有一个<f:message>
来显示它。
但是如何将该字段空白的页面转义(取消)?在我的情况下,它会不断发布错误消息,我必须在字段中输入一些内容才能转到另一个页面。
答案 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>