-1

我在 Java EE 中有一个使用Apache Commons File Upload API的应用程序。到目前为止一切进展顺利,但我有一个问题。

我在服务器端进行了某种验证 - 如果有任何问题,我必须将用户发送到上一页并将问题告知用户。我还必须将数据加载到表单中,但是当我request.getParameter("key")在 JSP 中使用时,它正在返回null.

我已经测试了未处理的请求commons-fileupload,我看到了结果。

我的问题是在请求被处理后如何保留request.getParameter("key")并将其发送回客户端org.apache.commons.fileupload.servlet.ServletFileUpload

<%out.println(request.getParameter("cedula"));%>null请求被 API 处理后返回

4

2 回答 2

0

1)你为什么使用getParameter而不是getAttribute

2)当发生验证错误时,请求被重定向,这意味着发送了一个新的请求对象,您需要再次提供请求属性。

与将操作分派到 JSP 时所做的相同。如果你想传递参数,那么你应该在标签的属性action中提供它。<form>

它似乎依赖于框架,但您可以尝试。请注意,在 JSP 中,如果您使用EL,您可以尝试${param}访问参数并${attr}访问属性,而不是使用scriplets' getParameter,如果您真的想通过 URL 传递它。JSTL也有很好的艺术

于 2012-11-17T12:47:45.010 回答
0

这很正常。整个 HTTP 请求以不同的格式发送,只有 Apache Commons FileUpload 可以处理。request.getParameter("name")不适用于任何参数,也不适用于常规参数。

您应该使用相同的 Apache Commons FileUpload API 从常规输入字段中提取值。您通常应该item.isFormField()在他们的代码示例中的行返回时执行此true操作(提取上传的文件将在它返回时完成false,您可能已经实现了该部分)。

或者,如果您已经使用 Servlet 3.0(Tomcat 7、Glassfish 3 等),那么您也可以只使用@MultipartConfigservlet 上的注释,这样您就可以获取上传的文件request.getPart("name")并继续request.getParameter("name")用于常规输入字段。

也可以看看:

于 2012-11-16T12:45:54.180 回答