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事件){
}
});
原因:在提交完成之前,不得分离(即从其父级移除)表单面板。否则,提交通知将失败。ishide()
方法正在关闭窗口???如果是,则
删除移动代码hide();
after