2011-07-26 10 views
0

私はJSFのバッキングBeanにJSP値を渡していますから値を取得した後取り込まなっていません。 Beanで値を取得したら、settersメソッドで値をinputTextフィールドに代入しようとしています。JSPページの値は、JSPのポップアップウィンドウ

public void testProcess(){ 

empBean.setEmpName(empBean.getEmpId()); 

} 

JSPページのアクションでtestProcessメソッドが呼び出されます。私は、Beanに値を設定するとき

私の質問は、私のJSFページの値は人口取得されていません。 JSFページを明示的にリフレッシュする必要がありますか?そうしたい場合はどうすればいいですか?

答えて

1

はい、あなたは、メインページを更新する必要があります。サーバー上で何が起こっても、クライアント(ブラウザ)上で自動的に何かが起きることはありません。

このタイプの操作でよく使われるパターンの1つは、ポップアップにajaxを使ったポストポスト(jQueryのような多くのjavascriptフレームワークがあります)を使用することです。 jQueryフォームプラグインを使用した素晴らしい例については、http://jquery.malsup.com/form/を参照してください。 ajax呼び出しのレスポンスハンドラでは、(window.openerプロパティを使用して)メインページをリロードし、ポップアップを閉じます。 jQueryのフォームプラグインとの例では、あなたのようなものだろう:

<script type="text/javascript"> 
    // wait for the DOM to be loaded 
    $(document).ready(function() { 
     // bind 'myForm' and provide a simple callback function 
     $('#myForm').ajaxForm(function() {  
     // reload main page 
     window.opener.location.reload(); 
     // close popup 
     window.close(); 
     }); 
    }); 
</script> 

をあなたは、AJAXを使用してフォームを送信したい理由は、あなたがポストが完了するまで、メインページを更新するのを待つことにしたいということで、やって通常のポストはポップアップを再読み込みさせ、一部のブラウザではwindow.openerプロパティが無効になり、メインページをリロードできなくなります。

+0

は、私は私のBeanにJSPの値を渡すためにtestProceesメソッドを呼び出しています私のjspページのonclickの方法でJavaScriptのメソッドを持っています。ですから、jspページのボタンのonclickに 'window.opener.location.reload();'があれば、私はJSFページをリロードできますか?別の質問は、ボタンのonlickメソッドまたはアクションメソッドが最初に呼び出すだろうか? – user75ponic

+0

ボタン上にアクションメソッドなどはありません。 onclickだけ。フォームタグにはアクションプロパティがありますが、これは上記のjQueryフォームを使用したコードが処理するものです。これは通常のフォームの振る舞いを防ぎ、代わりにajaxを使って投稿します。必要なのは、適切なアクションurlとsubmitボタン(input type = "submit")を持つフォームだけです。私が再び含まれているリンクをぞっと見る。 – pap

関連する問題