1

FormPanel を使用しようとしています。オンフォームパネル

  formPanel.setWidget(flexTable);

チェックボックス、listBox、FileUpload を追加

flexTable.setWidget(4, 1,listBox);
flexTable.setWidget(5, 1, fileUpload);
flexTable.setWidget(6, 1, checkBox);
 // More Code

fileUpload に対してのみ正常に動作するすべての値を取得するためのサーブレット コードが記述されています。checkBox と ListBox の値を取得する方法。

protected void doPost(HttpServletRequest request, 
        HttpServletResponse response) 
                        throws ServletException, IOException { 

    byte[] buffer = new byte[1310720];// 10 MB

     try {

        ServletFileUpload upload = new ServletFileUpload();

        FileItemIterator iterator = upload.getItemIterator(request);

         while (iterator.hasNext()) {
             FileItemStream item = iterator.next();
             InputStream stream = item.openStream();

             if (item.isFormField()) {
                  // WHAT TO DO??

                } else {

                  int len;

                  while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
                    response.getOutputStream().write(buffer, 0, len);                       
                  }
                }
         }

    } catch (FileUploadException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

チェックボックスとリストボックスの値を取得するのを手伝ってください。

4

3 に答える 3

5

この質問に対する回答を参照してください:サーバー側で値を取得する方法については、multipart/form-data アップロード フォーム (Java Http Post Upload) と共にパラメーターを渡す。

setName()値をサーバーに送信するには、ListBox ウィジェットと CheckBox ウィジェットのメソッドを使用して、各ウィジェットに名前を設定する必要があります。item.getFieldName()返されるのは名前です。

于 2012-03-09T12:59:26.533 に答える
2

あなたのコードをどうするかで。

  String name  = item.getFieldName();
                  String value = Streams.asString(item.openStream());

setName 上の各ウィジェットのことを忘れないでくださいFormpanel

于 2012-03-09T13:35:10.390 に答える
2

ここでいくつかのこと:

  1. サーバーとの通信に GWT-RPC を使用しないのはなぜですか? これは、データを転送するための推奨される方法です。
  2. それでもリクエストを処理するためにサーブレットを使用したい場合は、どのように値を送信しますか? ウィジェットはフォームに埋め込まれていますか、それとも値を手動で GET-url にエンコードしていますか? フォームを使用する場合は、ウィジェット要素 ( checkbox.getElement().setAttribute("name", "mycheck");) に名前を追加し、サーブレットで によって値を取得する必要がありますrequest.getParameter("mycheck")
  3. ServletFileUpload を使用したことはありませんが、リクエストのさまざまなファイル部分のみが提供されると思います。
于 2012-03-09T12:56:59.353 に答える