【问题标题】:HttpServletRequest#getPart doesn't exist?HttpServletRequest#getPart 不存在?
【发布时间】:2016-10-16 20:14:32
【问题描述】:

我有一个 Java WebApp,我需要在其中上传一个文件。根据我在互联网上找到的,这是我尝试过的:

public class FileUploadController extends HttpServlet {
    private final String UPLOAD_DIRECTORY = "C:/uploads";

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Part filePart = request.getPart("file");
    }

但是,IDE 抱怨未定义符号 getPart。所以我继续,发现你至少需要 Servlet API 3.0 才能获得这个方法,而我的项目只有 Servlet API 2.5。我将pom.xml文件中所需的API版本从2.5更改为3.0-alpha-1(由自动补全提出),并干净构建了项目。

但我仍然有这个关于getPart 不存在的错误。我错过了什么吗?

【问题讨论】:

  • 请注意,我检查了“依赖项”文件夹,并且 servlet-api-3.0-alpha-1.jar 存在并且 javax.servlet.http.HttpServletRequest 确实没有定义 getPart 方法。我现在感到很困惑。

标签: java maven jsp servlets


【解决方案1】:

在开发 3.0 版 Servlet API 期间,工件 id 已更改为 javax.servlet-api。 3.0-alpha-1 版是一个非常早期的预发布版本,可能还没有getPart(String) 方法。

要获取 Servlet API 的当前 3.0.x 版本,请使用以下依赖项:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>

【讨论】:

  • 是的,碰巧成功了!非常感谢!我不知道为什么自动完成没有显示这个,我不应该那么依赖它。开我的玩笑。 :)
猜你喜欢
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 2017-04-04
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多