user29184944
user29184944

Reputation: 9

Having trouble with JSTL libraries in my java JSP Servlet project

enter image description here [enter image description here](https://i.sstatic.net/mLxE5RhD.png) I am using Eclipse IDE. it is a web dynamic project JSP Servlet and JSTL. Eclipse version: 2024-12 (4.34.0) JDK/JRE 23 SE apache tomcat 10.1 it is a maven project so I included the JSTL dependency but when i try using the tags for example: <c:choose> <c:when test="${pageContext.request.getParameter('username').equals('admin') && pageContext.request.getParameter('password').equals('password')}"> ${pageContext.response.sendRedirect("/profile.jsp")} </c:when> </c:choose>

these are the following errors:

-Unknown tag (c:choose).

I've tried having this project without being through maven and adding the jar file to the web-inf/lib folder.

Upvotes: -3

Views: 62

Answers (1)

life888888
life888888

Reputation: 3144

  • Tomcat 10.1
  • Use Jakarta EE 10 (https://jakarta.ee/specifications/)
  • jakarta.servlet-api 6 ( web.xml version 6.0 )
  • add Taglib jar
    • DO NOT USE javax.servlet , use jakarta.servlet
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>3.0.0</version>
</dependency>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.jee10</groupId>
    <artifactId>hello-taglib-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>helloweb</name>
    <description>Jakarta EE 10 Hello Web</description>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>jakarta.servlet.jsp.jstl</artifactId>
            <version>3.0.0</version>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet.jsp.jstl</groupId>
            <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
            <version>3.0.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>hello</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.4.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="jakarta.tags.core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Taglib 001 Example of c:out</title>
</head>
<body>
    <c:set var="name" value="John Doe"/>
    <p>Hello, <c:out value="${name}" />!</p>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" id="WebApp_ID" version="6.0">
  <display-name>helloweb6</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Upvotes: 1

Related Questions