JSPのコードの中で
%記号はエスケープシーケンスで\u0025と表記できるので、次のように書くのがよいかも知れません。
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分