如何将 JSTL 添加到运行 GlassFish 的 IntelliJ Jakarta EE 10 项目

问题描述 投票:0回答:2

首先,抱歉我的英语不好。

我开始学习 jakarta EE,并发现了用于防止 XSS 攻击的 Jakarta 标准标签库(JSTL)。

IDE 说:“无法解析 taglib uri” 我没有找到任何关于在 intelliJ 中使用 JSTL 与 Maven、glassfish 7 和最近的 Jakarta EE 10 的指南。

我尝试在 IntelliJ Ultimate 中的 Jakarta EE 项目中添加 JSTL。 我的项目使用 glassfish 7.0 服务器和 JDK 19 运行。 我尝试通过在项目结构设置中添加来自 maven 的库来下载 JSTL lib。 我看到 intelliJ 和 JSTL 3.0 有很多问题,所以我尝试了很多版本的 JSTL,3.0、1.5 和 1.2。

我尝试在 JSP 底部通过两种语法声明 URI:

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

我在 pom.xml 中添加了依赖项,如下所示:

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-api</artifactId>
    <version>10.0.0</version>
    <scope>provided</scope>
</dependency>

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

有人可以帮助我吗? 这是我的第一个问题,我是菜鸟,如果我的问题很愚蠢,请宽容^^ 谢谢。

intellij-idea jakarta-ee glassfish jstl
2个回答
1
投票

我尝试在 IntelliJ Ultimate 中的 Jakarta EE 项目中添加 JSTL。我的项目使用 GlassFish 7.0 服务器和 JDK 19

运行

停止

普通 Jakarta EE 服务器(例如 GlassFish)已经随 JSTL 一起提供。您不需要需要像安装 Tomcat 等准系统 servlet 容器那样手动安装它。

请从您的

pom.xml
中完全删除单个 JSTL 依赖项。运行时类路径中的重复类只会导致运行时冲突。

另请参阅:


IDE 说:“无法解析 taglib uri”

忽略并运行它。有效吗?那么这绝对是一个错误的错误。所使用的 IDE 版本只需要赶上当前的技术水平即可。升级它。它还在发牢骚吗?向 IDE 人员报告。如果是 IntelliJ IDEA,则位于此处:https://youtrack.jetbrains.com/issues/IDEA


0
投票

在 POM.xml 中插入 JSTL 的规范和 impl(来自 glassfish)

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

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

在 JSP 文件中(在 Jakarta EE 10 中,JSTL URI 已更改,见下文):

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="jakarta.tags.core"%>
© www.soinside.com 2019 - 2024. All rights reserved.