Search code examples
javajspjstl

Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"


I'm trying to use JSTL, but I get the following error:

Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"

How is this caused and how can I solve it?


Solution

  • Use taglib definition in your JSP or better include it in every page by the first line.

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    

    There's also fix jstl-1.2 dependency in your project. Also use servlet specification at least 2.4 in your web.xml.

    The maven dependencies are (maven is a open source development tool)

    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    

    In the web.xml start writing

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    

    EDIT:

    I'd like to add a note that @informatik01 has mentioned in the comment about newer version of JSTL libraries available from Maven repository: JSTL version 1.2.1 API and JSTL 1.2.1 .