standard.jarとjstl.jarのセットでインストールする。
tldファイルはStandard.jarに入っている。
トラブル
NoClassDefFoundErrorが発生
JSTLを使ったJSPを表示しようとしたらNoClassDefFoundErrorが発生した。
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConditionalTagSupport
standard.jarのみいれていたら上記エラーが出る。
TLD又はタグファイル中のattribute指示子に従って属性testはどんな式も受け付けません
c:ifタグでEL式を使ったら「TLD又はタグファイル中のattribute指示子に従って属性testはどんな式も受け付けません」と怒られた。
調べてみると、Servlet 2.4/JSP
2.0でJSTL1.0は使えないからこんな感じになるらしい。現在使っているのはTomcat6(Servlet2.5/JSP2.1)なので、同じよ
うにいくかなとおもったら、動かない。Servlet2.4にweb.xmlを書き換えても動かない。
ためしに、JSTLをダウンロードしたときに「standard-examples.war」というのがあったので、Tomcat5.5で動かしてみる。動いた。
そこで、web.xmlの書き方を合わせ、Taglibの定義を削除してみたすると動いた。Tomcat6.0でServlet2.5のweb.xmlでも動いた。JSTLの設定はweb.xmlに必要ないのかも知れない。
また、Eclipse3.3からWTPを使ってデプロイしているが、web.xmlの修正などを行うと、反映されているか怪しい。なんで、
Serverビューで対象のサーバを右クリック>Clean Tomcat Work
Directryをすると、ワークディレクトリのクリアからサーバ再起動までやってくれるのでうまく反映される。