竹形誠司 ブログ
Java+MySQL+Tomcat    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
JSPで %@ や %> の文字シーケンスがリテラルとして扱えない件
by 竹形 誠司[takegata]
JSPのコードの中で
String str="<%@ page import = \"java.util.Date\"%>";
のように書いたら「引用符が必要です」というエラーが出るので、原因を調べていたのですが、どうも "%@" や "%>" など、特定のシーケンスがリテラルの中では扱えないようです。次のように、%の後で文字列を区切って繋ぐとエラーにはなりません。
String str="<%"+"@ page import = \"java.util.Date\"%"+">";
これらのシーケンスがJSPコードの中で特殊な扱いになっていることは、なんとなく想像できますが、どのような仕様に基づく動作なのか、調べようとしたのですが結局分かりませんでした。「%」や「@」や「>」といった文字について検索するのは難しいですね(誰か教えてください)。

%記号はエスケープシーケンスで\u0025と表記できるので、次のように書くのがよいかも知れません。
String str="<\u0025@ page import = \"java.util.Date\"\u0025">";
※コード中のバックスラッシュは円記号(\)と同じです。
投稿:竹形 誠司[takegata]/2008年 05月 01日 00時 16分 /更新:2008年 05月 01日 00時 30分