我在 Java EE 中有一个使用 Apache Commons File Upload API 的应用程序。到目前为止一切都很顺利,但我有一个问题。
我在服务器端进行了某种验证 - 如果有任何问题,我必须将用户发送到上一页并将问题告知用户。另外,我必须将数据加载到表单中,但是当我在 JSP 中使用
request.getParameter("key")
时,它返回 null
。
我已经测试了
commons-fileupload
未处理该请求,我看到了结果。
我的问题是如何保留
request.getParameter("key")
并在org.apache.commons.fileupload.servlet.ServletFileUpload
处理请求后将其发送回客户端?
<%out.println(request.getParameter("cedula"));%>
在 API 处理请求后返回 null
这很正常。整个 HTTP 请求以不同的格式发送,只有 Apache Commons FileUpload 可以处理。
request.getParameter("name")
不适用于任何参数,也不适用于常规参数。
您应该使用相同的 Apache Commons FileUpload API 从常规输入字段中提取值。通常,您应该在代码示例中的
item.isFormField()
行返回 true
时执行此操作(提取上传的文件将在返回 false
时完成,您可能已经实现了该部分)。
或者,如果您已经使用 Servlet 3.0(Tomcat 7、Glassfish 3 等),那么您也可以在 servlet 上使用
@MultipartConfig
注释,这样您就可以通过 request.getPart("name")
获取上传的文件并继续使用 request.getParameter("name")
作为常规输入字段。