我正在尝试捕获 servlet 中接下来的两个突出显示的字段,我可以在其中获取上传的文件。
源代码与中所示的完全相同GWT FormSubmit 类 Javadoc http://google-web-toolkit.googlecode.com/svn/javadoc/1.4/com/google/gwt/user/client/ui/FormPanel.html
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();
}
}));
我在 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!
大多数 servlet 容器不解码multipart/form-data
自动地,所以req.getParameter
(or getParameterValues
或类似的吸气剂)不会返回任何东西。
你必须使用一个库,例如Apache Commons 文件上传 http://commons.apache.org/fileupload/, or Jetty's MultiPartFilter http://wiki.eclipse.org/Jetty/Feature/Servlets_Bundled_with_Jetty#MultiPartFilter解码multipart/form-data
有效负载。
作为旁注,req.getAttribute
与从请求中获取数据无关;它用于在服务器组件之间(例如,servlet 容器和 servlet 之间,或者过滤器和 servlet 之间)传递与请求相关的数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)