Servlet2.3とServlet2.4の違い
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-01-07
Tomcat5.5 を使っているのに、web.xml を Servlet2.3 で定義していたので Servlet2.4/JSP2.0 を使うようにします。J2EE1.4 から web.xml のスキーマ定義が DTD からXML Schema になったようなので設定ファイルを書き換えました。
[Servlet2.3] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app>
[Servlet2.4] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> </web-app>
Tomcat を再起動したところ、どうやら JSP で jstl が読み込めない模様。Taglib の定義は下記の通りですが、JSP でエラー(Exception)が発生します。
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%> org.apache.jasper.JasperException: /xxxxx.jsp(26,84) TLD又はタグファイル中のattribute指示子に従って属性valueはどんな式も受け付けません
Servlet2.4/JSP2.0 では jstl を指定する uri が違うようなので変更。やはり Webapp 配下に tld などは持っておいた方がいいのかなぁ。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
関連記事
上記の記事に関連する記事(最新の10件)です。


