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 に答える