博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML预览
阅读量:5041 次
发布时间:2019-06-12

本文共 2950 字,大约阅读时间需要 9 分钟。

 

功能:  实现模板文件的预览

 模板实体类中有一个content字段,它的值是xml形式的,就是要预览它的内容; 

 

实现思路:  在java后台中将这个xml内容以xml文件的形式保存到服务器上,然后将路径返回到前台,前台使用window.open()的方式访问这个文件,这个文件就会在浏览器中打开,浏览器打开xml文件就是一种预览的方式.

 

/**     * 预览模板-并生成模板文件     *      * @param parameter     * @return     * @throws IOException      */    @SuppressWarnings("deprecation")    public Object getFileContent4XML(Map
dataSetMap,Object parameter){ Map
outParameters= new HashMap
(); outParameters.put("suc", "true"); try { DataSet dataSet=dataSetMap.get("datasetTemplate"); // 这里只会有一条数据 if(dataSet.getRecords()!=null && dataSet.getRecords().size()==1){
// 拿到对象,它里面有content字段 MantisTemplate templete=(MantisTemplate)(dataSet.getRecords().iterator().next()); // request对象 HttpServletRequest request=((HttpDoradoContext) DoradoContext.getContext()).getRequest() ; String path=request.getRealPath("tmp/"); // templete对象的xml内容包含一些特殊的字符无法解析,需要作转义 ,按照目前的内容,只能对& 作转义 String temp=templete.getTemplateContent(); temp=temp.replaceAll("&", "&"); //生成文件并将xml内容写入文件 File file =new File(path+File.separatorChar+templete.getName()+".xml"); OutputStream out= new FileOutputStream(file); out.write(temp.getBytes()); out.flush(); out.close(); // 返回xml路径 retPath=http://localhost:8080/receipt String retPath=request.getRequestURL().toString(); retPath=retPath.replaceFirst(request.getServletPath().toString(), ""); outParameters.put("retPath",retPath); outParameters.put("retFile","/tmp/"+templete.getName()+".xml" ); }else{ outParameters.put("suc", "false"); } } catch (Exception e) { outParameters.put("suc", "false"); logger.error(e, "【异常】 [模板文件导入失败!] " + " 异常信息:" + e.getMessage()); } return outParameters; }

 前台的处理

            var suc = command.outParameters().getValue("suc");                    if(suc == 'false'){                        alert("预览模板失败!");                        return false;                    }else{                        var  retPath= command.outParameters().getValue("retPath");                        var  retFile= command.outParameters().getValue("retFile");                        // 在当前页面中打开时使用 location.href=retPath+encodeURIComponent(retFile);                   // 在新的窗口中打开时使用 open()方法                        open(retPath+encodeURIComponent(retFile),'_blank','top=210,left=220,height=455,width=1120,directories=no,titlebar=no,location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=no');                    }

 

JavaScript打开新窗口的更多详细的说明,请访问:

 

转载于:https://www.cnblogs.com/yangw/p/4752787.html

你可能感兴趣的文章
ExtJs七(ExtJs Mvc创建ViewPort)
查看>>
如何用div实现textarea
查看>>
tomcat设置指定jdk版本
查看>>
洛咕 P4491 [HAOI2018]染色
查看>>
ZJOI2019 线段树
查看>>
继承与多态 课后习题
查看>>
Redis 数据类型
查看>>
sqlserver时间函数
查看>>
ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)
查看>>
数据结构与算法JS实现
查看>>
ISCSI网络存储服务
查看>>
关于svn和maven结合使用的讨论
查看>>
Microsoft Azure Preview portal 以及Preview Features介绍
查看>>
ZeroMQ:云计算时代最好的通讯库
查看>>
45.纯 CSS 创作一个菱形 loader 动画
查看>>
vue组件 Prop传递数据
查看>>
python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序...
查看>>
正则表达式
查看>>
NSNotificationCenter使用心得(原)
查看>>
ios开发应用内实现多语言自由切换 (转)
查看>>