- PR -

JSFでJavaScriptを使用してSubmitする方法を教えてください。

1
投稿者投稿内容
ar
会議室デビュー日: 2009/02/13
投稿数: 1
投稿日時: 2009-02-13 09:10
みなさんこんにちは。
私はJSFを使用して開発を行っているものです。
ネットで調べても満足いく結果が得られなかったため質問させてください。

開発環境
 Java 1.5
 WAS tomcat5.0.28,Spring2.5.6
 DB Oracle XE

質問概要
 JavaScriptを使用してSubmitする方法を教えてください。

質問詳細
 以下の画面の動きを行いたいと思っています。
 (1)メニューから一覧形式の画面を表示する。
 (2)一覧で選択したデータをポップアップ画面を表示して編集をおこなう。
 (3)編集が終わってポップアップを閉じたら一覧画面の再表示を自動でおこなう。


(2)でポップアップ画面を表示するJSを以下のように記述しています。
function showShashinPopup() {
// ポップアップを表示する
showModalDialog("petdiaryentry_popup.jsp", window,
"status:0;dialogWidth:400px;dialogHeight:300px;help=0;scroll=0");
// ポップアップを閉じたらHIDDEN属性の値に「reload」をセットする。
document.getElementById(
'mainform:sub_petdiaryentry_dtl:eventId').value = 'reload';
// サーバ側で再表示の処理をおこなう。
document.form_petdiaryentry.submit();
}

・質問1:サーバ側でreloadイベントが実行される場合とされない場合があり、動作が
    不安定なのはなぜでしょうか?修正点のアドバイスを頂きたいです。
・質問2:画面の動きの要件を満たすために通常はどのように技術的な解決をおこなうの
    でしょうか?
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2009-02-14 01:55
キャッシュはどーでしょう?

メソッドがGETのフォームは、リクエストパラメータが同じなら前回のものを
踏襲(サーバーに行かないでキャッシュを引っ張ってくる)します。

まぁ、JSFだから、たぶんデフォルトPOSTでしょうから、メタタグとか
入れてみたら?

それでもダメなら、リクエストをユニークにする仕掛けを入れるしかないですね。
これ入れたからって毎回サーバーアクセスに行くかどうかはやってみないと
わかりません。

"xxx.jsp?d="+(new Date()).getTime() ってやんのね。
古典的な方法だけど。


>>document.getElementById(
'mainform:sub_petdiaryentry_dtl:eventId').value = 'reload';
/
JSF使っているんだから、hidden か text か分からんけど、直にIDを指定する
こんな書き方したらダメですよ。作法があるはずです。





1

スキルアップ/キャリアアップ(JOB@IT)