枚举hasMoreElements()

时间:2009-08-31 09:47:04

标签: jsp enumeration multipart

我有一个JSP / HTML表单,其中有2个元素。一个是选择下拉列表,另一个是文件上传框(输入类型=“文件”)。我使用POST方法和enctype作为form-mpartpart。现在我能够使用MultipartRequest对象访问下拉列表和文件。没有问题。

但是当我没有上传任何文件时,以及我在

等收集表格中使用代码时
MultipartRequest multipartRequest = new MultipartRequest(request,".",5*1024*1024);
String dummySelect= (String) multipartRequest.getParameter("dummy");
out.println("<BR>select is "+dummySelect);
Enumeration files = multipartRequest.getFileNames();

理想情况下,如果我不上传任何文件,我应该得到一个空的枚举器。意思

while(files.hasMoreElements())应该评估为false,这不会发生。任何人都可以告诉我为什么?这会导致nullPointerException。

2 个答案:

答案 0 :(得分:0)

请确保您发送的内容类型(确切地说)是两个

中的一个

  • 应用程序/ x-WWW窗体-urlencoded
  • multipart / form-data

根据您链接的API,该类仅处理后一种类型。

或者,您可以尝试Apache commons FileUpload库。

答案 1 :(得分:0)

只需查看javadoc for the getFileNames() method - 它说,如果页面上任何文件输入为空,结果为空,只有当页面上根本没有文件输入时才返回空枚举。不知道为什么它实现了这个奇怪的,但文档说是这样......

编辑:我认为我弄错了 - 在枚举中应该有一些内容,即使文件输入是空的(或者在这种情况下你应该得到空枚举...不知道,文档不是我很清楚)。

相关问题