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

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 7月 18日 (水) 17:51:06 JST


牧田です。

ひが様、お返事ありがとうございます。

>hoge1.htmlにも、<input type="hidden" id="hoge"/>が必要です。
>値を引き継ぐときは、基本的にプロパティとHTMLの入力系の
>タグがワンセットだと認識していれば大丈夫だと思います。
→ありがとうございました、引き継ぐことができました。
しかし、親クラスの項目がたくさんあるため、hidden項目として書き出したくないです。
(javascriptで画面開くところも多数あります)
前画面で親クラスに設定した値を引き継ぎつつ、javascriptによって開く
良い方法はないでしょうか?

以上、宜しく願いします。

><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 mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>



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