目次

開発 FAQ

ブラウザのキャッシュが表示されているのか判断できない。

よく遭遇する現象として、

  1. テスト実行をブラウザ上で確認
  2. 間違いがあり、修正 → コンパイル → 再デプロイ
  3. 再度、ブラウザ上で確認

としたところ、3の表示が1と全く変わらず、修正ミスかブラウザのキャッシュか判断できない場合があります。

Paraseleneが生成した HTML 出力には、<body>タグの直後に、以下のようなコメントを付けます。

1:
2:
3:
<!--
 Parser(Paraselene  Version 1.2.1,Sun Oct 18 16:20:44 JST 2009) Runtime(Paraselene  Version 1.2.1,Sun Oct 18 17:04:51 JST 2009) 
-->

Parser部分は、viewクラスのスケルトンソースが作られた時の、Paraselene のバージョンと作成日時が入っています。
Runtime部分は、今実行して、この Page インスタンスの init が呼ばれた時の、Paraselene のバージョンと実行日時が入っています。

この日時部分を見て、それが修正後の時間となっているか確認して下さい。
特に、Google Chrome はキャッシュが消えずに、以前のものをそのまま表示してしまう事が多いようです。
Runtime 時間は、現在時刻より少し過去の時間である場合があります。
Paraselene は、各ページインスタンスを実リクエストより先行して new し、init を呼んだ形で待機させています。
そのため、サーブレットコンテナが起動した時間になっているかもしれません。

このコメントが入るのは、Version 1.2.1 以上で、view クラスのスケルトンを生成した時のみです。注意して下さい。

<A>ではなく、<FORM>からボタン押下によりダウンロードを行わせたい。

次の2つの方法があります。

  1. <FORM>のaction属性をプログラムから変更する。
    チュートリアル9(画像表示)にあるような、<A>のhref属性変更と同じような処理を行い、action属性に設定します。
    HTTP リクエストパラメータが必要な場合は URIAttribute.pageToDownloadURI の引数として渡さず、<FORM>の hidden 項目として引き渡して下さい。
  2. inputMainが返すForwardでリダイレクトする。
    チュートリアル9(画像表示)と同じような事を行うならば、次のような Forward を inputMain からリターンさせます。
    return new Forward( URIAttribute.pageToDownloadURI( PageType.PHOTO, "image.jpg" ), false );

上記の2つの方法により、下記のような画面遷移の違いがあります。

  1. 通常と変わりません。
    <FORM>を持つページの inputMain が呼ばれ、続いてダウンロード側の outputMain が呼ばれます。
  2. ダウンロードに限らずリダイレクトを使用すると、遷移元が無い状態で画面遷移が起こります。
    DummyPage の input が呼ばれ、続いてダウンロード側の outputMain が呼ばれます。

Paraselene は携帯サイトにも使えますか?

使えます。Paraselene はクライアントとなるブラウザを問いません。
携帯で使用できないタグ等に注意してモックアップ HTML を作成すれば大丈夫です。
ただし、au の HDML はサポートしていません。

Paraselene は携帯サイトでもセッションが維持できますか?

できます。
Paraselene はクッキーが利用できないクライアントに対しては、 URL にセッションIDを持たせます。この処理は Paraselene が自動的に行いますので、開発者はその点を気にする必要はありません。
URL 中にセッションIDを晒してしまう事にはセキュリティ面から避けるべきとの意見もありますが、Paraselene はセッションがあってはじめて機能するため、このような実装としています。
Paraselene はアクセス元を監視しています。セキュリティ確保のため、ある1つのセッションIDが複数のアクセス元から使用されていると判断した場合は、そのセッションIDは破棄します。

HTML 形式のモックアップから XHTML 形式の出力に切り替え可能ですか?

できます。
ただし、そのままではモックアップと同じ形式で出力されます。Page#setDoctype にて、出力方法の指定を任意のものに切り替えて下さい。