从gwt中的Formpanel接收数据

时间:2012-03-09 12:22:43

标签: java gwt servlets gwt2 formpanel

我正在尝试使用FormPanel。 o FormPanel

  formPanel.setWidget(flexTable);

添加了一个复选框,一个listBox和FileUpload

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

编写Servlet代码以获取仅对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();
    }

}

Plz帮助获取checkBox和List Box的值。

3 个答案:

答案 0 :(得分:5)

请参阅此问题的答案:Passing parameters along with a multipart/form-data upload form (Java Http Post Upload),了解如何在服务器端获取值。

要将值发送到服务器,您需要通过ListBox和CheckBox小部件上的setName()方法在每个小部件上设置名称。名称是item.getFieldName()返回的名称。

答案 1 :(得分:2)

这里有几件事:

  1. 为什么不使用GWT-RPC与服务器通信?这是传输数据的首选方式。
  2. 如果您确实想要使用servlet来处理请求,那么如何提交您的值?您的小部件是嵌入在表单中还是在GET-url中手动编码它们的值?如果您使用表单,则应在窗口小部件元素(checkbox.getElement().setAttribute("name", "mycheck");)上添加名称,并在servlet中通过request.getParameter("mycheck")获取值。
  3. 我从未使用过ServletFileUpload,但我相信它只会为您提供请求的不同文件部分。

答案 2 :(得分:2)

如何处理您的代码。

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

并且不要忘记setName

上每个小部件的Formpanel