XML预览
功能: 实现模板文件的预览
模板实体类中有一个content字段,它的值是xml形式的,就是要预览它的内容;
实现思路: 在java后台中将这个xml内容以xml文件的形式保存到服务器上,然后将路径返回到前台,前台使用window.open()的方式访问这个文件,这个文件就会在浏览器中打开,浏览器打开xml文件就是一种预览的方式.
/**
* 预览模板-并生成模板文件
*
* @param parameter
* @return
* @throws IOException
*/
@SuppressWarnings("deprecation")
public Object getFileContent4XML(Map<String, DataSet> dataSetMap,Object parameter){
Map<String, Object> outParameters= new HashMap<String,Object>();
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打开新窗口的更多详细的说明,请访问:
http://www.cnblogs.com/yangw/p/4752473.html
XML预览的更多相关文章
- Android Studio 无法预览xml布局视图的解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lvyoujt/article/details/73283762 提示:failed to load ...
- Android Studio 无法预览xml布局视图:failed to load AppCompat ActionBar with unkNown error
问题如下: 解决方法: 找到res-->values-->styles.xml 文件 可以看到主题Them设置如下: 修改为: 界面预览可以正常显示
- Android Studio xml文件中的布局预览视图
操作系统:Windows 10 x64 IDE:Android Studio 3.3.1 更新了Android Studio之后,xml文件中的布局预览视图变得如此简洁! 原因是没有勾选Show La ...
- AndroidStudio下使用 RecyclerView xml文件不显示预览条目并报错类似:NoClassDefFoundError 问题解决
在项目中使用RecyclerView是很普遍的,最近工作中遇到了这种情况: RecyclerView可以正常使用 不会报错 但是在layout中的xml文件中不显示并且报错,如下图:(报的错忘了截了, ...
- Android Studio无法预览xml布局之解决方法(两种)
学习安卓程序开发,用的Android Studio,发现怎么更改xml代码都没有想要的效果.如图 代码如下: <?xml version="1.0" encoding=&qu ...
- JSP实现word文档的上传,在线预览,下载
前两天帮同学实现在线预览word文档中的内容,而且需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了.希望得到各位大神的指教.下面我就具体谈谈自己的实现过程,总结一 ...
- C#开发微信门户及应用(30)--消息的群发处理和预览功能
在很多场合下,我们可能需要利用微信公众号的优势,定期给指定用户群发送一些推广消息或者新闻内容,以便给关注客户一种经常更新公众号内容的感觉,同时也方便我们经常和用户进行互动.微信公众号的高级群发接口就是 ...
- 解决Android界面布局添加EditText组件后界面无法预览
错误报告: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V Exception details are ...
- html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
随机推荐
- jumpserver V0.4.0 在CentOs7上的安装
基于 CentOS 7 一步一步安装 Jumpserver 0.4.0 环境 系统: CentOS 7 IP: 192.168.226.128 一. 准备Python3和Python虚拟环境 1.1 ...
- Sass初学者超强十分钟入门
ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候,请勾选Add Ruby executables to your PATH这个选 ...
- shell之 printf 输出语句
总结: (1)printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度.左右对齐方式等.默认printf不会像 echo 自动添加换行符,我们可以手 ...
- if处理多分支结构
实例1 import java.util.Scanner; /** * Created by liwenj on 2017/7/17. */ public class test7 { public s ...
- 浅述 Java 并发
浅述 Java 并发 volatile volatile只能保证变量对各个线程的可见性,但不能保证原子性.关于 Java语言 volatile 的使用方法就不多说了,我的建议是 除了 配合packag ...
- 富文本编辑器UEditor的配置使用方法
将下载的富文本编辑器的文件解压后放到 webcontent 下 如果 文件中的jsp文件夹下的controller.java文件报错的话 就将jsp下的lib文件夹中的文件都复制到 web-i ...
- About the diffrence of wait timed_wait and block in java
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * * @au ...
- java设计模式系列之设计模式概要(1)
一.什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...
- c# typeof 与 GetType 作用与区别
官方解释: Used to obtain the "System.Type" object for a type. A 'typeof' expression takes the ...
- Web应用程序的开发步骤
Web应用程序的开发步骤 如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现.那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢?这个问题没有一个简 ...