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()すべてnullオンになります。multipart/form-datamultipart/form-data

基本的に、アップロードされたファイルを抽出するために現在使用しているものとまったく同じ API を使用して、通常のフォーム フィールドを抽出する必要があります。通常、これは Apache Commons FileUpload なので、それも使用していると思います。if (!fileItem.isFormField())ファイルフィールドを取得するには、どこかにチェックが必要です。else通常のフォーム フィールドを取得するには、 をフックする必要があります。

または、すでに Servlet 3.0 を使用している場合は、フォームを@MultipartConfigアノテーション付きの通常のサーブレットに送信し、getPart()メソッドを使用してファイル フィールドを取得します。引き続きgetParameterXxx()メソッドを使用して通常のフォーム フィールドを取得できます。

以下も参照してください。


具体的な問題とは関係ありませんが、90 年代スタイルの大文字の HTML タグ/属性名を使用し、1998 年以降廃止された<center>要素を使用し、CSS の代わりに HTML テーブル要素の推奨されないスタイル属性を使用しても、適切な方法に基づいて HTML を学習しているという印象はありません。および最新のリソース。あなたがそれをしていることを確認してください。また、フォームを JSP に送信してスクリプトレットを使用することは、10 年前から推奨されていません。適切な JSP リソースも読み取っていることを確認してください。

于 2013-02-22T14:35:42.820 に答える