作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在使用 GWT 通过 servlet 发送文件。
最初我试图仅将文件发送到服务器。效果很好。
现在在 af ormPanel 中我添加了 3 个列表框。
private ListBox propertyNamelist = getListBox("propertyName");
private ListBox propertyTypeList = getListBox("propertyType");
private ListBox propertyValueList = getListBox("propertyValue");
private ListBox getListBox(String name){
listbox = new ListBox();
listbox.setName(name);
return listbox;
}
然后将其添加到 FormPanel。
formPanel.setWidget(propertyNamelist);
formPanel.setWidget(propertyTypeList);
formPanel.setWidget(propertyValueList);
formPanel.submit();
在服务器端。
try {
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
stream = item.openStream();
if (item.isFormField()) {
log.warning("Got a form field: " + item.getFieldName());
System.out.println(" chk fg " +item.getFieldName() +" = "+ Streams.asString(item.openStream()));
} else {
log.warning("Got an uploaded file: " + item.getFieldName()
+ ", name = " + item.getName());
fileName = item.getName();
mimetype = item.getContentType();
}
}
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
WARNING: Got a form field: propertyValue
Jun 11, 2012 11:37:55 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: /UploadFileServlet: org.apache.commons.fileupload.FileItemStream$ItemSkippedException
chk fg propertyValue = motivation
根据我的动机是列表框PropertyValue
的第一个值,因为列表框中还有更多值。
还有更多的列表框需要显示。
我无法理解正在发生的事情。
注意:我无法通过 RPC 发送列表框,因为这些列表框与要发送到服务器和服务器到外部存储库的文件相关。
请有人帮忙。
最佳答案
顾名思义,FormPanel
上的 setWidget
会替换 FormPanel
小部件的内容。
您想要将多个小部件放入 FormPanel
中,因此请使用中间容器(例如 FlowPanel
)将您的小部件放入:
// put all widgets together in some container (you can have a more complex layout)
FlowPanel container = new FlowPanel();
container.add(fileUpload);
container.add(propertyNameList);
container.add(propertyTypeList);
container.add(propertyValueList);
// set the container as the content of the form, so named form widgets will get
// their value sent to the server.
formPanel.setWidget(container);
关于java - 无法一起发送列表框和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978335/
我是一名优秀的程序员,十分优秀!