#java

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() %>" />
->
Qihuan Piao

朴 起煥

中国育ち、東京暮らし。読んだり書いたり、時には考え込んだり。親になってから5年ほど、ブログ(とその他もろもろ)は完全停止していたけど、気づけばまた書いている。ここにはそんな寄り道の記録を書いています。結論が出ない話も多いけど、それもまたよし。