formpanel.submit不在GWT服务器上提交文件

formpanel.submit不在GWT服务器上提交文件,gwt,gwt2,formpanel,Gwt,Gwt2,Formpanel,我想将一个文件从客户端发送到服务器 我的代码: 客户端: private FormPanel getFormPanel(){ if(formPanel==null){ formPanel=新的formPanel(); formPanel.setMethod(formPanel.METHOD\u POST); formPanel.setEncoding(formPanel.ENCODING\u MULTIPART); setAction(GWT.getHostPageBaseURL()+“Uplo

我想将一个文件从客户端发送到服务器

我的代码:

客户端

private FormPanel getFormPanel(){
if(formPanel==null){
formPanel=新的formPanel();
formPanel.setMethod(formPanel.METHOD\u POST);
formPanel.setEncoding(formPanel.ENCODING\u MULTIPART);
setAction(GWT.getHostPageBaseURL()+“UploadFileServlet”);
setWidget(getFlexTable_1());
System.out.println(GWT.getHostPageBaseURL()+“UploadFileServlet”);
}
返回模板;
}
getFlexTable_1()

flexTable.setWidget(1,1,getFileUpload());
getFileUpload()中

private FileUpload getFileUpload(){
if(fileUpload==null){
fileUpload=新建fileUpload();
fileUpload.setName(“上传”);
}
返回文件上传;
}
私有按钮getAddButton(){
如果(addButton==null){
addButton=新按钮(“添加”);
addButton.addClickHandler(新的ClickHandler(){
公共作废一次点击(点击事件){
formPanel.submit();
}
});
}
返回添加按钮;
}

在服务器端

公共类CmisFileUpload扩展了HttpServlet实现Servlet{
受保护的无效数据集(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
doPost(请求、响应);
}
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
字节[]缓冲区=新字节[115200]//
字符串文件名=null;
字符串mimetype=null;
字符串majorVersion=null;
InputStream=null;
System.out.println(“ServletWorking Fine”);
}
现在,当我选择一个文件并单击“添加”按钮时,我无法在服务器端看到此代码的输出
System.out.println(“ServletWorking Fine”);

客户端上的
System.out.println(GWT.getHostPageBaseURL()+“UploadFileServlet”);
的输出是

http://127.0.0.1:8888/UploadFileServlet
当我直接在浏览器上使用这个url时,我会得到
System.out.println(“ServletWorking Fine”);
**


已编辑

我又创建了一个用于文件上传的web应用程序

public类Uploadfile实现入口点{
FormPanel uploadForm=新建FormPanel();
moduleload()上的公共void{
HorizontalPanel HorizontalPanel=新的HorizontalPanel();
setAction(GWT.getHostPageBaseURL()+“UploadFileServlet”);
uploadForm.setEncoding(FormPanel.ENCODING\u MULTIPART);
uploadForm.setMethod(FormPanel.METHOD\u POST);
添加(上传表单);
//创建一个面板来容纳所有表单小部件。
VerticalPanel=新的VerticalPanel();
uploadForm.setWidget(面板);
FlexTable FlexTable=新的FlexTable();
面板。添加(柔性工作台);
//创建一个FileUpload小部件。
FileUpload upload=新建FileUpload();
upload.setName(“uploadFormElement”);
setWidget(2,3,上传);
//面板。添加(上传);
//添加“提交”按钮。
按钮上传提交按钮=新按钮(“提交”);
panel.add(上传提交按钮);
uploadSubmitButton.addClickHandler(新的ClickHandler(){
公共作废一次点击(点击事件){
//TODO自动生成的方法存根
uploadForm.submit();
}
});
uploadForm.addFormHandler(新的FormHandler(){
提交时公共无效(FormSubmitEvent事件){
} 
SubmitComplete上的公共无效(FormSubmitCompleteTEvent事件){
alert(event.getResults());
} 
}); 
RootPanel.get().add(horizontalPanel);
}
}
服务器

protectedvoiddoget(HttpServletRequest),
HttpServletResponse(响应)
抛出ServletException,IOException{
doPost(请求、响应);
}
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse(响应)
抛出ServletException,IOException{
系统输出打印号(“工作罚款”);
}
此代码运行良好

根据我的说法,代码之间没有区别

请告诉我formpanel.submit无法正常工作的原因


Plz帮助。

为什么要为文件上载映射GET方法。GET请求方法用于在浏览器中输入的url。删除GET请求映射,它将起作用

对于请求后映射,您可以对RequestParam使用MultipartFile,如下所示

protected void uploadFileAndReconcilePayout1(@RequestParam("documentUpload") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException {
        //code for file working

    }

为什么要为文件上载映射GET方法。GET请求方法用于在浏览器中输入的url。如果删除GET请求映射,它将起作用

对于请求后映射,您可以对RequestParam使用MultipartFile,如下所示

protected void uploadFileAndReconcilePayout1(@RequestParam("documentUpload") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException {
        //code for file working

    }
是否
hide()
方法正在关闭窗口???如果是,则

formPanel.submit()之后删除移动代码
hide();

对于
hide()
使用
FormHandler

uploadForm.addFormHandler(新的FormHandler(){
SubmitComplete上的公共无效(FormSubmitCompleteTEvent事件){
隐藏();
}
提交时公共无效(FormSubmitEvent事件){
}
});
原因:在提交完成之前,不得分离(即从其父级移除)表单面板。否则,提交通知将失败。

is
hide()
方法正在关闭窗口???如果是,则

删除移动代码
hide();
after