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

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


木村です。

すいません。バージョンを付けるのを忘れていました。

s2-extension-2.4.17.jar
s2-framework-2.4.17.jar
teeda-ajax-1.0.11-SP1.jar
teeda-core-1.0.12-20071011.065807-1.jar
teeda-extension-1.0.12-20071011.065807-1.jar
teeda-tiger-1.0.12-20071011.070033-1.jar

です。

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

木村 究道 さんは書きました:
> 度々失礼いたします。
> 木村と申します。
> 
> 稀なケースかもしれませんので心苦しいのですが、質問させ
> てください。
> 
> ひとつの画面で照会、編集をやろうとしています。
> 
>  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 メーリングリストの案内