0

我的项目概念是将文件上传到数据库。下面的代码工作正常,但问题是我无法<select> 从一页到另一页获取值,它总是显示null值。

如何<select>在文件上传期间将元素值从一个 JSP 获取到另一个 JSP?

  <FORM ENCTYPE="multipart/form-data" ACTION="upload_page.jsp" METHOD=POST>
       <center>
       <table border="0" bgcolor=#ccFDDEE>
       <tr><center><td colspan="2" align="center"><B>UPLOAD THE FILE</B>
      <center></td></tr>
       <tr><td colspan="2" align="center"> </td></tr>
       <tr><td><b>Choose the file To Upload:</b></td><td><INPUT NAME="file" TYPE="file"> </td></tr>
       <tr><td colspan="2" align="center"> </td></tr>
       <tr><td colspan="2" align="center"><input type="submit" value="Send File">            </td></tr>
       <tr>
       <td>
       <select name="t1">
      <option value="mars">Mars</option>
      <option value="moon">Moon</option>
      <option value="sun">Sun</option>
      <option value="earth">Earth</option>
      </select>
      </td>

******** 
<% String s1=request.getParameter("t1"); System.out.println(s1); 
********
4

1 回答 1

2

您正在以multipart/form-data编码形式提交表单。这与默认使用的默认application/x-www-form-urlencoded编码getParameterXxx()方法不同。它们都会返回nullmultipart/form-data因为multipart/form-data默认情况下不支持。

基本上,您需要使用与当前用于提取上传文件的 API 完全相同的 API 来提取常规表单字段。通常这是 Apache Commons FileUpload,所以我假设您也在使用它。您应该在某个地方进行if (!fileItem.isFormField())检查以获取文件字段。您需要挂钩else以获取正常的表单字段。

或者,如果您已经使用 Servlet 3.0,请将表单提交到带有@MultipartConfig注释的普通 servlet 并使用getPart()方法获取文件字段,您可以继续使用getParameterXxx()方法获取普通表单字段。

也可以看看:


与具体问题无关,使用 90 年代风格的大写 HTML 标记/属性名称并使用自 1998 年以来已弃用的<center>元素并使用 HTML 表格元素的不鼓励样式属性而不是 CSS 并没有给我这样的印象,即您正在学习基于正确的 HTML和最新的资源。确保您正在这样做。此外,十年来,将表单提交给 JSP 并使用scriptlet不受欢迎的。确保您还阅读了健全的 JSP 资源。

于 2013-02-22T14:35:42.820 回答