久々のblogネタを投稿してみる。
最近、JSPをよくいじっているわけですが、JSPにはJSTL(JSP Standard Tag Library)の標準タグライブラリとEL(Expression Language)式が使えると便利かなと思いました。
JSTLとは、JSPで使えるカスタムタグライブラリの一つで、JakartaプロジェクトによりJSPで便利なタグをひとまとめにしたライブラリです。
その中でよく使われるのがCoreタグライブラリとEL式です。
JSTLに関する詳しい解説はKishida's SITE 〜 Java入門講座 - JSTL(標準タグライブラリ)やJavaの道(Java入門・リファレンス) - Javaの道:Taglibs(2.Standard Taglibsの概要)に丸投げしますが、今回はそのEL式が使えない場合のお話。
JSTLを使うには、JakartaプロジェクトのページからJSTLのファイルをダウンロードし、サーブレットコンテナ(Tomcat)のWEB-INF\libに「standard.jar」と「jstl.jar」を設置してやることで完了です
...って思ってたんですよ。
ええ、これだけでも<c:out>や<c:forEach>などのタグライブラリは動くんです。
でもね、でもね。
これだとEL式が動いてくれなかったんですねorz
${true}がそのまま「${true}」って表示されちゃうんです( ̄□ ̄;)!!
そこで色々ググってみたところ、似たような問題で悩んでいる方はいました。
wakasa.org - ●Tomcat5.5でtaglib内でEL式が動かない
ただ、俺の場合これだけじゃありませんでした。
「standard.jar」や「jstl.jar」を「WEB-INF\lib」に設置するだけではなく、「web.xml」に
Tomcat5の新機能第2回:EL式とタグファイルに書かれていますが、
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
を忘れると、JSTLが使えるのにEL式が使えないという不思議な体験ができます。
結局のところ俺がきちんと説明書見てなかったからこんな事態になっただけなんですけどねorz
というわけで、自分の備忘録とともに同じ問題で苦しんでいる人の助けになれば良いかなと思います。
コメント