2010年2月17日

jsp内のコメントアウトはjsp式の記述で

基本

多分ほとんどの人は分かっていると思いますが、
jspファイル内のコメントの記述は以下になります。

<%-- JSPのコメント --%>

そしてHTMLのコメントの記述は

<!-- HTMLのコメント -->

問題

SP内でもHTMLのコメント記述が使えますが、
コメントアウトした部分にJavaプログラムが埋め込んだ場合
そのコードは実はコンパイルされてしまいます。
例えば、

<!-- コメントアウト
<input type="text" value="<%= request.getNotExistMethod() %>" />
 -->

ここでは全く存在しないJavaのメソッドを書きました。
このままだとJSPがコンパイルエラーになります。
"The method getNotExistMethod() is undefined for the type HttpServletRequest"というメッセージです。

正しい方法

Javaプログラムが埋め込んだコードをコメントアウトするには
JSPのコメント式を記述します。
上記の例で言うとこうなります。

<%-- JSPコメントアウト
<input type="text" value="<%= request.getNotExistMethod() %>" />
-%>

補足

下記のようなコンパイルが通るJavaコードが書かれた場合は、
もちろんエラーは出ないし、 HTMLの部分もコメントアウトされたため画面には何も表示されません。

<!-- コメントアウト
<input type="text" value="<%= request.getContextPath() %>" />
->
Share on Twitter Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。

他にも英語中国語で書いてます、よろしければチェックしてみてください。