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

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


牧田です。

返事遅くなりました。
ひが様、ありがとうございます。

>できないのではないかと思います。
>その後、formのtargetにwintestを設定してサブミットすると
>formの内容を送ることができます。
→hoge1.html画面でjavascriptによりサブミットを行いました。
hoge1.htmlの内容は送信できましたが前画面(hoge0.html)で親クラス(AbstractHogePage)のhogeに
設定した値が次画面(hoge2.html)にて表示を行えません。
どのように行えばよいのですか?

リクエストダンプを見ると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 メーリングリストの案内