[Seasar-user:11147] [Teeda] doメソッドが実行されないケースについて

木村 究道 [E-MAIL ADDRESS DELETED]
2007年 10月 19日 (金) 18:12:50 JST


度々失礼いたします。
木村と申します。

稀なケースかもしれませんので心苦しいのですが、質問させ
てください。

ひとつの画面で照会、編集をやろうとしています。

 1. 照会画面表示
   ↓ ・編集ボタン
 2. 編集画面表示
   ↓ ・値を入力して更新ボタン
   ↓ ・Pageクラスで入力チェック
   ↓ ・チェックOK
 3. 編集画面を再表示してJavaScriptのonLoadイベントで、showModalDialogにて確認ダイアログを表示。
   ↓ ・閉じるボタンで確認ダイアログを閉じる
   ↓ ・JavaScriptにて更新ボタンを押下
   ↓ ・Pageクラスで更新処理
 4. 照会画面を表示

上記のように動いてほしいですし、2回目以降は動くのです
が、1回目だけ3.→4.のときにdoメソッドが実行されず、照
会画面に遷移しません。

ブラウザを立ち上げて、1回目で現象がおきます。
2回目以降はうまくいきます。
ブラウザを立ち上げなおすと、また1回目で現象がおきます。
その後はまた、うまくいきます。


どのような原因が考えられるでしょうか?

よろしくお願い致します。



TestPage.java
-----------------------------------------------------
public class TestPage {
	
    private Integer crudType = 1;
    private boolean showDialog = false;
    private String str;

    public String doEdit() {
        this.crudType = 2; // 編集に変更
        return null;
    }
	
    public String doBack() {
        this.crudType = 1; // 照会に変更
        return null;
    }

    public String doUpdate() {
        if (this.showDialog == false) {

            // ここで入力チェックなどを行う(DBの存在チェックなどの論理チェック)

            this.showDialog = true;
            return null; // 入力チェックOKなら確認ダイアログを出すために返す
        }
        this.showDialog = false;
        this.crudType = 1; // 照会に変更
        return null;
    }

    public boolean isRead() {
        if (this.crudType == 1) {
            return true;
        }
        return false;
    }

    // getter/setter省略
}

test.html
-----------------------------------------------------
<html>
<head>
<title></title>
<script language="JavaScript">
<!--
// 確認ダイアログ表示
function showDialog(){
    // フラグを確認
    if(document.getElementById("showDialog").value == "false"){
        return;
    }
    // 確認ダイアログ表示
    showModalDialog("dialog.html",window,"status:false;dialogWidth:320px;dialogHeight:240px");
    document.getElementById("doUpdate").click();
}
//-->
</script>
</head>
<body onLoad="showDialog();">
<form id="testForm" onLoad="showDialog();">
<input type="hidden" id="crudType"/>
<input type="hidden" id="showDialog"/>
<div id="isRead-End" >
 照会画面<br/>
  文字 : <span id="str-span"/><input id="str-hidden" type="hidden"/><br/>
  <input id="doEdit" type="submit" value="編集"/>
</div>
<div id="isNotRead">
 編集画面<br/>
  <input id="str-text" type="text"/><br/>
  <input id="doUpdate" type="submit" value="更新"/>
</div>
</form>
</body>
</html>


dialog.html
-----------------------------------------------------
<html>
<head>
<title>確認ダイアログ</title>
</head>
<body>
<form id="checkDialogForm">
<center>
<br/>
<br/>
    <input type="button" id="end" value="閉じる" onClick="self.window.close();"/>
<br/>
<br/>
</center>
</form>
</body>
</html>

-- 
-----------------------------------------------------
 十八ソフトウェア株式会社
 システム開発部 アプリケーション開発課  木村 究道
 〒850-0861 長崎市江戸町6-5江戸町センタービル6F
 TEL:095-824-0018  FAX:095-827-8754
 E-mail: [E-MAIL ADDRESS DELETED]
-----------------------------------------------------



Seasar-user メーリングリストの案内