- 環境
- Windows10
- Apache Tomcat 8.5.47
- Eclipse Version: Oxygen.3a Release (4.7.3a)
- Java version 1.8.0_231
事象 : JSPファイルを使った処理でログファイルにエラーが出た
Caused by: org.xml.sax.SAXParseException: 要素"c:choose"の接頭辞"c"がバインドされていません。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
...
原因 : JSPファイルにJSTLのCoreライブラリが定義されていないから
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<c:choose>
<c:when test="${条件1}" >
...処理1...
</c:when>
<c:when test="${条件2}" >
...処理2...
</c:when>
</c:choose>
対応1 : JSPファイルに接頭辞cを定義する
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...省略..
「"http://java.sun.com/jsp/jstl/core" のタグ・ライブラリー記述子が見つかりません」となった時の対応方法
JSPファイルに接頭辞cを定義してコンパイルエラーになった場合は、そもそもcoreタグライブラリがないのでjarファイルを配置します。
-
Apache Tomcatのサイトから環境に合ったjarをダウンロードする。
- 今回のバージョンは1.2.5なので以下のjarをダウンロード
- taglibs-standard-impl-1.2.5.jar
- taglibs-standard-spec-1.2.5.jar
- taglibs-standard-jstlel-1.2.5.jar
- 今回のバージョンは1.2.5なので以下のjarをダウンロード
- jarファイルをWEB-INF/libフォルダに配置する