JSPでJSTLを使用していて、「TLD又はタグファイル中のattribute指示子に従って属性itemsはどんな式も受け付けません」というエラーが発生することがある。
原因は、
Servlet 2.3/JSP 1.2とServlet 2.4/JSP 2.0では、使えるJSTLのバージョンが違います。(それぞれ1.0と1.1) Servlet 2.4/JSP 2.0でJSTL 1.0を使おうとすると、「TLD又はタグファイル中のattribute指示子に従って属性valueはどんな式も受け付けません」というエラーになってしまいます。
ソース1
ソース2
らしいです。
web.xmlと対象のJSPを以下のように修正。
<!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 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">
対象のJSP)
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
↓
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>