[Seasar-user:19569] Re: ダウンロード処理について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 3月 27日 (土) 00:00:00 JST


小林 (koichik) です.

Date:    Fri, 26 Mar 2010 22:17:31 +0900
From:    tkitazawa <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:19568] ダウンロード処理について

> Pageクラスの1つの実行処理にて、ファイルダウンロードと
> 画面の再描画を行ないたいのですが、何か方法はありませんでしょうか?

HTTP でリダイレクトするのではなく,再描画する
画面の中の <meta> 要素でリダイレクトしては
いかがでしょうか.

ただし,Teeda でレイアウトを使っていると
<head> の内容を動的に変更するのは困難なので,
文法的にはアレですが <body> の中に <meta> を
書いた方が簡単です.

例えばダウンロードを要求する画面 (ここでは
xxx.html とします) の HTML に

<body>
  <span id="isDownload">
    <meta http-equiv="Refresh" content="0;URL=yyy.html" />
  </span>
  ...

と入れておいて,XxxPage クラスでは

public boolean download;

というプロパティを用意して,ダウンロードを
する場合に do〜() メソッドの中で true にします.

そして YyyPage クラスの prerender() で
ダウンロードコンテンツを流します.

XxxPage と YyyPage は同じサブアプリケーションに
して,必要な情報は @SubapplicationScope で
引き継ぐようにしてください.

> facesContext.responseComplete();でエラーは抑止できますが、
> 敢えて記載しておきます。

何をやったのか具体的に書かずにスタックトレースだけ
記載されてもどうしようもありません.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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