[Seasar-user:9218] Re: [Teeda] 新しいウィンドウを開いた時の値引継ぎについて

Yasuo Higa [E-MAIL ADDRESS DELETED]
2007年 7月 18日 (水) 17:12:27 JST


<XNM2$9$0$2$$5$3$0$A$[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:9214] Re:[Teeda] 新しいウィンドウを開いた時の値
引継ぎについて" において、
   "[E-MAIL ADDRESS DELETED]"さんは書きました:

> 牧田です。
> 
> ひが様、お返事ありがとうございます。
> 
> >hoge0.htmlにhogeというタグはないので、hoge0.htmlから
> >hoge1.htmlに遷移した段階で、hogeのプロパティの値は消えています。
> >hoge0.htmlに<input type="hidden" id="hoge"/>などがひつようです。
> →hoge0.htmlに<input type="hidden" id="hoge"/>を追加して
> 実行しましたがhoge2.htmlではhogeを表示することができませんでした。
> 何か他に追加する内容がありますか?
> 
説明がもれてました。
hoge1.htmlにも、<input type="hidden" id="hoge"/>が必要です。
値を引き継ぐときは、基本的にプロパティとHTMLの入力系の
タグがワンセットだと認識していれば大丈夫だと思います。

よろしくお願いします。

> >window.open()の最初の引数でHTMLのパスを記述するのではなく、
> >JavaScriptでformのサブミットをするなら、newwindowについては
> >気にしなくてもTeedaのほうで面倒見てくれます。
> →了解しました。
> 
> 
> 変更したhoge0.html************************
> <html>
> <head>
> <title>hoge0</title>
> </head>
> <body>
> <form id="hoge0Form">
> <input type="button"  value="doNext" id="doNext"/>
> <input type="hidden" id="hoge"/>
> </form>
> </body>
> </html>
> 
> 変更したhoge1.html************************
> <html>
> <head>
> <title>hoge1</title>
> 	<script  language="JavaScript">
> 	<!--
> 	function test(){
> 		h = 210;
> 		w = 770;
> 		win_detail = "height=" + h + ",width=" + w + ",toolbar=yes,
> >location=yes,directories=yes,status=yes,menubar=yes,scrollbars=
> >yes,resizable=
> >yes";
> 		win = window.open("","wintest",win_detail);
> 		document.all("doNext").click();
> 	}
> 	//-->
> 	</script>
> </head>
> <body>
> <form id="hoge1Form" target="wintest">
> <input type="text" id="fuga"></input>
> <input type="button"  value="Javascript" id="btnNext" onclick="test()"/>
> <input type="submit" style="display:none;"  value="Server" id="doNext"/>
> </form>
> </body>
> </html>
> 
> 変更したhoge1Paga.class************************
> public class Hoge1Page extends AbstractHogePage {
> 
>     private String fuga;
> 
>     public String getFuga() {
>         return fuga;
>     }
> 
>     public void setFuga(String fuga) {
>         this.fuga = fuga;
>     }
>     
>     public Class initialize() {
>         return null;
>     }
> 
>     public Class prerender() {
>         setFuga("fugafuga");
>         return null;
>     }
>     
>     public Class doNext() {
>         return Hoge2Page.class;
>     }
> }
> 
> お忙しいところすみませんが、宜しくお願いします。
> 
> 					以上
> 
> >ひがです。
> >
> >> 牧田です。
> >> 
> >> 返事遅くなりました。
> >> ひが様、ありがとうございます。
> >> 
> >> >できないのではないかと思います。
> >> >その後、formのtargetにwintestを設定してサブミットすると
> >> >formの内容を送ることができます。
> >> →hoge1.html画面でjavascriptによりサブミットを行いました。
> >> hoge1.htmlの内容は送信できましたが前画面(hoge0.html)で親クラス
> >(AbstractHogePage)のhogeに
> >> 設定した値が次画面(hoge2.html)にて表示を行えません。
> >> どのように行えばよいのですか?
> >> 
> >hoge0.htmlにhogeというタグはないので、hoge0.htmlから
> >hoge1.htmlに遷移した段階で、hogeのプロパティの値は消えています。
> >hoge0.htmlに<input type="hidden" id="hoge"/>などがひつようです。
> >
> >window.open()の最初の引数でHTMLのパスを記述するのではなく、
> >JavaScriptでformのサブミットをするなら、newwindowについては
> >気にしなくてもTeedaのほうで面倒見てくれます。
> >
> >HTMLでソースを表示させるとformのactionにnewwindow=trueが
> >入っているのがわかると思います。
> >
> >> リクエストダンプを見るとSubApplicationScopeにhogeが2つできていてnullの方
が
> >表示されているみたいです。
> >> hoge1.htmlでのnewwinodwのパラメタの指定が誤っていますか?
> >> リクエストダンプ********************
> >>  [session]javax.faces.internal.scope.SubApplicationScope={null={org.
seasar.
> >teeda.extension.html.PagePersistence.SUBAPPLICATION={hoge=
> >hogehoge}}, 13={org.
> >seasar.teeda.extension.html.PagePersistence.SUBAPPLICATION={hoge
> >=null, fuga=
> >fugafuga}}}
> >> 
> >> hoge0.html************************
> >> <html>
> >> <head>
> >> <title>hoge0</title>
> >> </head>
> >> <body>
> >> <form id="hoge0Form">
> >> <input type="button"  value="doNext" id="doNext"/>
> >> </form>
> >> </body>
> >> </html>
> >> 
> >> hoge0Paga.class************************
> >> public class Hoge0Page extends AbstractHogePage {
> >> 
> >>     public Class doNext() {
> >>         setHoge("hogehoge");
> >>         return Hoge1Page.class;
> >>     }
> >> 
> >>     public Class initialize() {
> >>         return null;
> >>     }
> >> 
> >>     public Class prerender() {
> >>         return null;
> >>     }
> >> 
> >> }
> >> 
> >> hoge1.html************************
> >> <html>
> >> <head>
> >> <title>hoge1</title>
> >> 	<script  language="JavaScript">
> >> 	<!--
> >> 	function test(){
> >> 		h = 210;
> >> 		w = 770;
> >> 		win_detail = "height=" + h + ",width=" + w + ",toolbar=yes,
> >location=yes,directories=yes,status=yes,menubar=yes,scrollbars=
> >yes,resizable=
> >yes";
> >> 		win = window.open("","wintest",win_detail);
> >> 		document.all("doNext").click();
> >> 	}
> >> 	//-->
> >> 	</script>
> >> </head>
> >> <body>
> >> <form id="hoge1Form" target="wintest">
> >> <input type="text" id="fuga"></input>
> >> <input type="button"  value="Javascript" id="btnNext" onclick="test()"/>
> >> <input type="submit" style="display:none;"  value="Server" id="doNext"/>
> >> <input type="hidden" id="newwindow" value="true"></input>
> >> </form>
> >> </body>
> >> </html>
> >> 
> >> hoge1Paga.class************************
> >> public class Hoge1Page extends AbstractHogePage {
> >> 
> >>     private String fuga;
> >>     private String newwindow;
> >> 
> >>     public String getFuga() {
> >>         return fuga;
> >>     }
> >> 
> >>     public void setFuga(String fuga) {
> >>         this.fuga = fuga;
> >>     }
> >>     
> >>     public String getNewwindow() {
> >>         return newwindow;
> >>     }
> >>     
> >>     public void setNewwindow(String newwindow) {
> >>         this.newwindow = newwindow;
> >>     }
> >> 
> >>     public Class initialize() {
> >>         return null;
> >>     }
> >> 
> >>     public Class prerender() {
> >>         setNewwindow("true");
> >>         setFuga("fugafuga");
> >>         return null;
> >>     }
> >>     
> >>     public Class doNext() {
> >>         return Hoge2Page.class;
> >>     }
> >> }
> >> 
> >> AbstractHogePage.class************************
> >> public abstract class AbstractHogePage  {
> >> 
> >>     private String hoge;
> >> 
> >>     public String getHoge() {
> >>         return hoge;
> >>     }
> >>     
> >>     public void setHoge(String hoge) {
> >>         this.hoge = hoge;
> >>     }
> >> }
> >> 
> >> hoge2.html************************
> >> <html>
> >> <head>
> >> <title>hoge2</title>
> >> </head>
> >> <body>
> >> <form id="hoge2Form">
> >> <span id="hoge"></span>
> >> <span id="fuga"></span>
> >> </form>
> >> </body>
> >> </html>
> >> 
> >> hoge2Paga.class************************
> >> public class Hoge2Page extends AbstractHogePage {
> >> 
> >>     private String fuga;
> >>     
> >>     public String getFuga() {
> >>         return fuga;
> >>     }
> >>     
> >>     public void setFuga(String fuga) {
> >>         this.fuga = fuga;
> >>     }
> >> 
> >>     public Class initialize() {
> >>         return null;
> >>     }
> >> 
> >>     public Class prerender() {
> >>         return null;
> >>     }
> >> 
> >> }
> >> 
> >> 以上、宜しくお願いします。
> >> 
> >> >ひがです。
> >> >
> >> >> 牧田です。
> >> >> 
> >> >> 米林様、お返事ありがとうございます。
> >> >> 
> >> >> >> Pageクラスのデータを全て引き継ぎたい場合は、javascriptで値を全て設
定
> >> >> >> しなくてはならないのでしょうか?
> >> >> >
> >> >> >そうですね。
> >> >> >JavaScriptでopenしていない場合は、値がリクエストパラメータとして
> >> >> >送られているので設定する必要がないですが、JavaScriptからopenする
> >> >> >場合は、値を設定する必要があります。
> >> >> >これはTeedaに限らず、WEBアプリの場合にはサーバ側に値を
> >> >> >送信しなければサーバ側では値を取得出来ませんので。
> >> >> →通常ですと、formタグのtargetに新しいウィンドウ名(wintest)を記述して
> >> >> javascriptでopenするときウィンドウ名にwintestとすることで
> >> >> formの内容はサーバに送信することはできませんか?
> >> >
> >> >できないのではないかと思います。
> >> >その後、formのtargetにwintestを設定してサブミットすると
> >> >formの内容を送ることができます。
> >> >
> >> >> teedaの場合、できないのでしょうか?
> >> >> 
> >> >これは、Teedaに無関係だと思います。
> >> >
> >> >--
> >> >Yasuo Higa
> >> >[E-MAIL ADDRESS DELETED]
> >> >_______________________________________________
> >> >Seasar-user mailing list
> >> >[E-MAIL ADDRESS DELETED]
> >> >https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >
> >> _______________________________________________
> >> Seasar-user mailing list
> >> [E-MAIL ADDRESS DELETED]
> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >> 
> >
> >
> >--
> >Yasuo Higa
> >[E-MAIL ADDRESS DELETED]
> >_______________________________________________
> >Seasar-user mailing list
> >[E-MAIL ADDRESS DELETED]
> >https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


--
Yasuo Higa
[E-MAIL ADDRESS DELETED]



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