2011-07-15 7 views
3

JSFで検証済みのフォームをポップアップで開く必要があります。フォームを送信すると、私はBeanメソッドを呼び出しています。データはバックエンドに送信され、成功した場合はポップアップが自動的に閉じます。検証失敗時にポップアップを開いたままにして保存に成功するにはどうすればいいですか?

データは正常に保存されていますが、ポップアップが自動的に閉じるように、Beanメソッドから何を返す必要がありますか。

また、フォームを送信した後、どうすれば回答を受け取ることができますか?それは可能ですか?

答えて

0

リッチフェイスを使用している場合は、通常のポップアップの代わりにRich Modal Windowを使用することをおすすめします。

フォームが<a4j:form>の場合は、<a4j:commandButton>をajaxサブミットに使用し、oncomplete属性を指定すると、送信が成功した後にjavascriptを実行できるようになります。このjavascriptは、あなたのモーダルのIDを引数としてRichfaces.hideModalPanel('pnl');への呼び出しになることができます。コードの下

1

は、検証に基づいてポップアップを表示/非表示を維持するために使用することができる:これはnullでない場合

<a4j:commandButton value="Create Quote" id="createQuote" action="#{quoteAction.createQuote}" 
           immediate="false" 
           execute="envType country partner @this" 
           render="envType country partner" 
           oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('quoteResultPanel')}.show();}"> 
      </a4j:commandButton> 

#{facesContext.maximumSeverity == null}は、任意の検証メッセージ(単数または複数)のために検証するユーザは表示されませんポップアップが表示されます。検証メッセージがない場合にのみ、ポップアップを閉じるような方法でも使用できます。

oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('quoteResultPanel')}.hide();}" 
+0

これはリッチフォントの正解です。 –

関連する問題