2011-11-30 63 views
3

我试图抓住一个servlet中的下两个突出显示的字段,我可以获取上传的文件。GWT发送表单参数到一个servlet

的源代码是一样的作为在所示的GWT FormSubmit class Javadoc

form.setEncoding(FormPanel.ENCODING_MULTIPART); 
form.setMethod(FormPanel.METHOD_POST); 

// Create a panel to hold all of the form widgets. 
VerticalPanel panel = new VerticalPanel(); 
form.setWidget(panel); 

// Create a TextBox, giving it a name so that it will be submitted. 
final TextBox tb = new TextBox(); 
tb.setName("WorkTitle"); 
tb.setValue("WorkTitle"); 

panel.add(tb); 

// Create a ListBox, giving it a name and some values to be associated 
// with 
// its options. 
ListBox lb = new ListBox(); 
lb.setName("listBoxFormElement"); 
lb.addItem("foo", "fooValue"); 
lb.addItem("bar", "barValue"); 
lb.addItem("baz", "bazValue"); 
panel.add(lb); 

// Create a FileUpload widget. 
FileUpload upload = new FileUpload(); 
upload.setName("uploadFormElement"); 
panel.add(upload); 

// Add a 'submit' button. 
panel.add(new Button("Submit", new ClickListener() { 
    public void onClick(Widget sender) { 
     form.setAction(GWT.getModuleBaseURL()+"uploadWork"); 
     form.submit(); 
    } 
})); 

I'm得到这些参数在我的servlet这行代码:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
    System.out.println("ENTRAA BIENNNN"); 
    System.out.println(" ___ELEMENTO1" + req.getAttribute("WorkTitle")); 
    System.out.println(" ___ELEMENTO3" + req.getParameterValues("WorkTitle")); 

但两者返回我NULL

我该怎么办?

TIA!

回答

5

大多数servlet容器不会自动解码multipart/form-data,因此req.getParameter(或getParameterValues或类似的getter)不会返回任何内容。
您必须使用库如Apache Commons FileUploadJetty's MultiPartFilter来解码multipart/form-data有效负载。请注意,与从请求中获取数据无关;它用于在服务器组件之间(例如servlet容器和servlet之间,或者过滤器和servlet之间)传递与请求相关的数据。

+0

好吧,我明白了。我使用Apache Commons FileUpload,实际上我在服务器端获取文件。问题是我不知道如何包含来自同一表单的文件的标题和评论。 – migueloop

+2

您必须遍历解析的项目并使用'isFormField'。请参阅http://commons.apache.org/fileupload/using.html#Processing_the_uploaded_items或http://commons.apache.org/fileupload/streaming.html#Parsing_the_request –

+0

非常感谢。这个参考帮助了我。 – migueloop

相关问题