无法解析JSP Out.Println(),使用Maven的WebApp Archteype创建项目

时间:2018-11-14 15:05:56

标签: java maven jsp servlets intellij-idea

在youtube上演示之后,我正在练习Servlet / JSP。我已经使用webapp原型使用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,该Servlet调度到showAlien.jsp。我没有使用web.xml,而是使用了注释。

问题是,请求的getAttribute()方法得到了完美解决,而out的println()方法没有得到解决。实际上,没有out方法可以解决。我尝试将servlet jar复制到webapp / lib和web-inf / lib目录。但是这些并不能解决问题。

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

如何解决此问题?我确定我将servlet依赖关系放在错误的文件夹中,但仍然无法解决。

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

1 个答案:

答案 0 :(得分:1)

我通过在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>