- - PR -
pageディレクティブのcontentType
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-05-14 16:43
お世話になります。
JSPで共通処理をheader.jspに記述して それをbody.jspで<%@ include file="header.jsp"%>と 最初に取り込むようにしています。 <%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> という記述はどのJSPでも共通なので body.jspではなく、header.jspに記述しようと考えました。 しかしそうするとbody.jspの表示時に日本語が文字化けしてしまいます。 それで上記の指定をheader.jspからbody.jspに移したら文字化けしなくなりました。 includeディレクティブを使用した場合はすべてのファイルを インクルードしたものが1ファイルとしてコンパイルされるという認識でいましたので header.jspでcontentTypeを指定しても大丈夫かな? と考えていましたが、それはできないのでしょうか? 動作はWSAD5.0上で行っています。 以上ご教授願います。 | ||||||||||||
|
投稿日時: 2003-05-14 17:42
こんにちは、北斗のポンです。
えっと、インクルードディレクティブを使用する場合、インクルードする側とされる側でcontentTypeを指定することはできませんし、指定する必要がありません。 インクルードされたあとに1ファイルとしてコンパイルされると言うことは、それぞれでcontentTypeを指定すると2回contentTypeを指定することになってしまいますよね(JSPの仕様書を見たわけではないので、この理由は怪しいですが・・・) 下記の記事はもう見てみましたか?contentTypeの指定については載っていなかったと思いますが、インクルードについて詳しく載っています。 第5回 インクルードによるコードの再利用で効率化をはかる では・・・ | ||||||||||||
|
投稿日時: 2003-05-14 18:45
早速の返信ありがとうございました。
すみません、私の言葉が足りなかったかもしれません。 もちろんheader.jspとbody.jspの両方にcontentTypeを指定することはしていません。 header.jspのみに設定したのです。 つまり、includeする側(body.jsp)にcontentTypeの宣言をせずに includeされる側(header.jsp)のみにcontentTypeを宣言するという 方式は取れないのでしょうか? # contentTypeの記述を各ファイル毎に記述しなくていいようにしたいと # いうのが私の思いです。 以上 | ||||||||||||
|
投稿日時: 2003-05-15 09:32
いや、私の勘違いでしたね。すみません。(ちょっとごたごたしている時に返信してしまったので・・・) えーっと、amuroさんの言っていることを私の環境でやってみると正常に動くようですねぇ。 ちなみに私の環境は、アプリケーションサーバーに Websphere AEs 4.0 使っています。 参考までにソースを書いておきます。 start.jsp
header.jsp
header.jspのほうでは単純にディレクティブタグで必要な情報を書いてるだけで、それをstart.jspの一番最初にインクルードしてます。 参考になれば幸いです。 | ||||||||||||
|
投稿日時: 2003-05-15 14:01
こんにちは。
amuroです。 サンプルソースありがとうございました。 早速自分の環境で試してみたんですが、 やっぱり文字化けしました。 テストはWSAD5.0(WAS5.0)とtomcat4.1.xでそれぞれ試しました。 そこで気になったのが 北斗のポンさんが試された環境がWAS4.0ということなので 私の環境とはJSPの対応バージョンが異なるというところす。 これから私の方でもJSP1.1対応のコンテナ上でテストしてみて JSP1.1と1.2の仕様の違いでも調べようかなって思います。 いろいろありがとうございました。 | ||||||||||||
1
