我正在按照 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>
我的项目结构:
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/