gpt4 book ai didi

java - 无法一起发送列表框和文件

转载 作者:行者123 更新时间:2023-11-30 04:45:52 24 4
gpt4 key购买 nike

您好,我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com