java - JSP Out.Println() 无法解析,使用 Maven 的 WebApp 原型(prototype)创建的项目

标签 java maven jsp servlets intellij-idea

我正在按照 youtube 上的演示练习 Servlet/JSP。我已经使用 webapp 原型(prototype)使用​​ Maven 创建了该项目。

pom.xml 文件中我的 servlet 依赖项:

  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
  </dependency>

我的 JSP 文件:

<%@ page import="model.Alien" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%
        Alien a1 = (Alien) request.getAttribute("alien");
        out.println(a1);
    %>

</body>
</html>

我的项目结构:

project_directory_structure

Alien 是一个简单的 POJO,GetAlienController 有我的 Servlet,它分派(dispatch)到 showAlien.jsp。我没有使用 web.xml,我使用的是注释。

问题是request的getAttribute()方法完美解决了,out的println()方法却没有解决。事实上,所有的out方法都没有解决。我也尝试将 servlet jar 复制到 webapp/lib 和 web-inf/lib 目录。然而这些并没有解决问题。

在另一个项目中,我没有使用任何Maven,而是使用Intellij的Web应用程序原型(prototype)来创建项目。在这一次中,我没有遇到这样的问题。

如何解决这个问题?我确信我将 servlet 依赖项放入了错误的文件夹,但我仍然无法解决它。

请不要建议我“不要将java代码写入JSP”。这只是一个演示。我正在努力学习基础知识。

最佳答案

我通过向 pom.xml 添加另一个依赖项解决了这个问题:

  <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>

关于java - JSP Out.Println() 无法解析,使用 Maven 的 WebApp 原型(prototype)创建的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303213/

相关文章:

java - 如何配置 Maven 阴影插件以在我的 jar 中包含测试代码?

java - 将我的文件转换为 blob,然后插入数据库

java - 版本号管理 - 如何做?

java - Spring Boot中Kotlin Controller 类可以访问Java服务类吗

java - 如果我在其中使用连接池,是否需要关闭 HttpClient (java)

java - 在 Android 中使用阻塞队列创建缓冲区类

java - 使用 bean 定义配置文件的 Spring 3.1 bean 可见性

java - 将文件内容写入jsp

java - 主页RequestMapping。 Spring MVC

java - OpenGL - 立方体正在本地位置进行平移,而不是全局位置