Freemarker进行非空处理
1.需求是这样的:
一个对象可能有图片,也可能没有,在对象有图片的时候输出图片,没有的时候不做处理。
2.新建一个doc文档,另存为Xml文档(2003版本的)。
修改Xml文档:用Freemarker的if标签包住图片那一行,如果不为空显示,否则不做处理。
<#if test.img??> <w:p wsp:rsidR="00602F11" wsp:rsidRDefault="00602F11">
<w:r wsp:rsidRPr="009527B6"><w:rPr><w:noProof/></w:rPr><w:pict>
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/><v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/><v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/></v:shapetype> <w:binData w:name="${"wordml://0200000"+test_index+1+".jpg"}" xml:space="preserve">
${test.img}
</w:binData> <v:shape id="图片 1" o:spid="_x0000_i1025" type="#_x0000_t75" style="width:236pt;height:144.5pt;visibility:visible;mso-wrap-style:square">
<v:imagedata src="${"wordml://0200000"+test_index+1+".jpg"}" o:title=""/>
</v:shape>
</w:pict>
</w:r>
</w:p> </#if>
4.Java测试代码
package Test8; import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.junit.Test; import bean.TestFreemarkerBean;
import freemarker.template.Configuration;
import freemarker.template.Template;
import sun.misc.BASE64Encoder; /**
* 如果图片不为空才显示图片,为空则不显示。
* @author: qlq
* @date : 2017年7月26日下午4:44:59
*/
public class FreeamrkExport { @Test
public void exportSimpleWord() throws Exception {
// 要填充的数据, 注意map的key要和word中${xxx}的xxx一致
Map<String, Object> dataMap = new HashMap<String, Object>(); // Configuration用于读取ftl文件
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("utf-8"); /*
* 以下是两种指定ftl文件所在目录路径的方式, 注意这两种方式都是 指定ftl文件所在目录的路径,而不是ftl文件的路径
*/
// 指定路径的第一种方式(根据某个类的相对路径指定)
configuration.setClassForTemplateLoading(this.getClass(), "");
// 指定路径的第二种方式,我的路径是C:/a.ftl
// configuration.setDirectoryForTemplateLoading(new File("C:/")); List<person> mylist = new ArrayList<person>();
mylist.add(new person("QQQ", getImageStr("C:/Users/liqiang/Desktop/tupian/kdmt.jpg"), "11111111111111"));
mylist.add(new person("QQQ", getImageStr("C:/Users/liqiang/Desktop/tupian/2.jpg"), "11111111111111"));
mylist.add(new person("QQQ", getImageStr("C:/Users/liqiang/Desktop/tupian/1.jpg"), "11111111111111"));
mylist.add(new person("QQQ", getImageStr("C:/Users/liqiang/Desktop/tupian/3.jpg"), "11111111111111"));
mylist.add(new person("QQQ", getImageStr("C:/Users/liqiang/Desktop/tupian/4.jpg"), "11111111111111"));
mylist.add(new person("QQQ", "11111111111111"));
mylist.add(new person("QQQ", "11111111111111"));
dataMap.put("mylist", mylist);
// 输出文档路径及名称
File outFile = new File("F:/test8.doc"); // 以utf-8的编码读取ftl文件
Template t = configuration.getTemplate("test8.ftl", "utf-8");
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 10240);
t.process(dataMap, out);
out.close();
}
private String getImageStr(String imgFile) throws Exception {
InputStream inputStream = null;
byte []data=null;
inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream .close();
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data); }
}
5.结果:
最后两个img属性为null,则不输出。
aaarticlea/png;base64,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" alt="" />
Freemarker进行非空处理的更多相关文章
- freemarker的非空判断
${price} 判断非空写法就是 ${(price)!}
- select标签非空验证,第一个option value=""即可
select标签非空验证,第一个option value=""即可,否则不能验证
- JavaWeb 学习008-今日问题(非空验证尚未解决) 2016-12-2
1. 学生模块list页面 不能正常跳转 说是找不到stuid属性,但是我在entity里面和数据库建表的属性就是stuid:Grade模块代码一样,却可以正常运行 这是什么问题? <c:for ...
- 使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空
使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空 添加 alter table table_name add field_name field_type; 添加,并设置默认值,及非 ...
- Oracle数据库,非空约束、主键约束、外键约束、唯一约束
非空约束:设置列时,可为空默认可为空,去掉对号之后设置数据不可为空: 唯一约束:在键中设置,唯一约束名称.类型Unique.列名:设置应用完成之后,此列数据具有唯一性:即数据不可重复(类型:Uniqu ...
- 非空二叉树的一个有趣的性质:n0 = n2 + 1
对任何非空二叉树T,若n0 表示叶结点的个数.n2 表示度为2 的非叶结点的个数,那么两者满足关系n0 = n2 + 1. 这个性质很有意思,下面我们来证明它. 证明:首先,假设该二叉树有N 个节点, ...
- 将src非空的属性注入到des中
package lizikj.bigwheel.common.vo.merchandise.util; import java.lang.reflect.Field; import lizikj.bi ...
- javascript判断非空
/* *判断非空 * */ function isEmpty(val){ if(val == null)return true; if(val == undefined || val == 'unde ...
- phalcon:非空字段不能在beforeCreate赋值,可以改用beforeValidationOnCreate
phalcon非空字段不能在beforeCreate赋值 碰到了这个问题,不知道什么原因记录一下. 表users: action_act 字段 varchar 10 not null,非空字段, 在 ...
随机推荐
- WordPress 之 在注册界面 实现 注册后密码直接显示在页面上
前言:WordPress 功能无疑强大的,但有些功能实现上还是有少许不尽人意,比如在 网站上有新用户注册后,必须下发到用户填写的邮件才能接收到新密码,而密码又是系统自动生成的,如果因为某些原因用户接收 ...
- lightoj1038(数学期望dp)
题意:输入一个数N,N每次被它的任意一个因数所除 变成新的N 这样一直除下去 直到 N变为1 求变成1所期望的次数 解析: d[i] 代表从i除到1的期望步数:那么假设i一共有c个因子(包括1和本身) ...
- idea 项目打包发布
clean install -Dmaven.test.skip=true -pl 项目名(maven为准) -am -amd
- Linux Install geoip
安装方法 http://php.net/manual/en/geoip.installation.phpgeoip中的PHP函数介绍:http://php.net/manual/en/book.geo ...
- Python文件和异常
程序和运行时数据是在内存中驻留的,涉及到数据交换的地方,通常是磁盘.网络等,因此需要IO接口. IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单 ...
- Codeforces Round #514 (Div. 2) D. Nature Reserve
http://codeforces.com/contest/1059/problem/D 最大值: 最左下方和最右下方分别有一个点 r^2 - (r-1)^2 = (10^7)^2 maxr<0 ...
- [译]Golang中的优雅重启
原文 Graceful Restart in Golang 作者 grisha 声明:本文目的仅仅作为个人mark,所以在翻译的过程中参杂了自己的思想甚至改变了部分内容,其中有下划线的文字为译者添加. ...
- 51job_selenium测试2
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- java基础-Idea开发工具介绍
java基础-Idea开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前给大家介绍过一款Java的IDE叫eclipse,有些功能用起来不是很得心应手,尤其是在导报的 ...
- spring-data-jpa初步认识
什么是spring data jpa? spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的[方法命名规则]写dao层接口,就可以在不写接口实现的情况下,实现对数据 ...