Servlets GWT/Smart GWT:要传递给servlet的多个XML文件内容。

Servlets GWT/Smart GWT:要传递给servlet的多个XML文件内容。,servlets,gwt,Servlets,Gwt,我将XML列表的内容作为字符串,需要将其以隐藏变量的形式传递给服务器。我将一个文件名为键、值为字符串的映射转换为json,并将其传递给服务器。但是当我在一个隐藏变量中设置它时,它就不起作用了。如果我删除这个隐藏变量,一切正常。我不能使用fileUpload,因为我将字符串中的内容作为调用的输出。我不想把文件保存在服务器上,以后再下载。请告知 public void sendFiletoDownload(Map<String, String> result) { String

我将XML列表的内容作为字符串,需要将其以隐藏变量的形式传递给服务器。我将一个文件名为键、值为字符串的映射转换为json,并将其传递给服务器。但是当我在一个隐藏变量中设置它时,它就不起作用了。如果我删除这个隐藏变量,一切正常。我不能使用fileUpload,因为我将字符串中的内容作为调用的输出。我不想把文件保存在服务器上,以后再下载。请告知

public void sendFiletoDownload(Map<String, String> result) {

    String jsonResult = JSONUIHelper.toJson(result);
    FormPanel form = new FormPanel();

    _log.logMsg(BsLogLvl.DEBUG, "form.start;"+GWT.getModuleBaseURL());
    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);
    form.setAction(GWT.getModuleBaseURL() + "dnldSvc");
    _log.logMsg(BsLogLvl.DEBUG, "form.submit();"+StringUtil.makeXMLSafe(jsonResult));
    Hidden hiddenFileName = new Hidden("fileName", "PltAtty.zip");
    Hidden hiddenJSON = new Hidden("jsonData", StringUtil.makeXMLSafe(jsonResult));
    //SafeHTMLUtils.
    form.add(hiddenFileName);
    form.add(hiddenJSON);
    _log.logMsg(BsLogLvl.DEBUG, "form.submit();");
    form.submit();
    _log.logMsg(BsLogLvl.DEBUG, "after submit();");

    form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {

        public void onSubmitComplete(SubmitCompleteEvent event) {

            _log.logMsg(BsLogLvl.DEBUG, "after onSubmitComplete;"+event);
        }
    });
}
public void sendFiletoDownload(映射结果){
字符串jsonResult=jsonuihelp.toJson(结果);
FormPanel窗体=新的FormPanel();
_logMsg(BsLogLvl.DEBUG,“form.start;”+GWT.getModuleBaseURL());
form.setEncoding(FormPanel.ENCODING\u MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
form.setAction(GWT.getModuleBaseURL()+“dnldSvc”);
_logMsg(BsLogLvl.DEBUG,“form.submit();”+StringUtil.makeXMLSafe(jsonResult));
HiddenHiddenFileName=新隐藏(“fileName”,“PltAtty.zip”);
HiddenHiddenJSON=newhidden(“jsonData”,StringUtil.makeXMLSafe(jsonResult));
//安全轨道。
添加(隐藏文件名);
form.add(hiddenJSON);
_logMsg(BsLogLvl.DEBUG,“form.submit();”);
表单提交();
_logMsg(BsLogLvl.DEBUG,“在提交()之后;”);
form.addSubmitCompleteHandler(新的FormPanel.SubmitCompleteHandler(){
SubmitComplete上的公共无效(SubmitCompleteTEvent事件){
_logMsg(BsLogLvl.DEBUG,“onSubmitComplete之后;”+事件);
}
});
}

我尝试了两个选项,如StringUtil.makeXMLSafe、URL.encode,以确保隐藏变量成功通过。。。但是没有成功……放弃了这种方法,尽管我不喜欢其他方法。现在开始在服务器中保存文件,并使用..打开在不同窗口中生成的唯一id。。以后需要删除目录中的临时文件。。Window.open(GWT.getModuleBaseURL()+“dnldSvc?fileName=“+result+”&downloadFileName=“+downloadFileName”,“_blank”,null);