使用freemarker生成HTML文件

本文介绍了如何使用Freemarker生成HTML简历,包括创建模板文件、修改后缀为ftl、从数据库读取数据填充模板、处理循环和条件判断,以及解决图片显示等问题。在Freemarker中,通过<#if>标签进行条件判断,<#list>标签用于循环遍历列表,并结合size属性检查列表长度。最后,将生成的HTML文件提供给用户下载。
摘要由CSDN通过智能技术生成

好久没写博客了,不是没东西写而是犯懒不想写,最近实在积累太多不写点担心全丢了,反正前一阵子的东西时找不回来了啦,赶紧趁有时间、有激情、有记忆记点是点吧。好啦,罗里吧嗦到这里,言归正传。

 

最近弄一项目,要求把人的基本信息和各项事迹弄成一个简历,并且导出为word、html、pdf三种格式。导出为word和html都使用的freemarker,生成pdf使用的flying saucer技术,这些技术都比较娴熟了,网上的资料也比较多,这里根据自己的实际情况记载一下,以及做的过程中遇到的一些问题。

 

生成word这篇文件已经介绍过了,这里就不赘述了。这里说生成html文件。

 

生成html文件使用的技术和生成word是一样的,流程和模式也是一样的。

 

1、创建模板文件:写一个符合条件和样式要求的html页面或者jsp页面,然后将其中的具体内容使用EL进行格式化(具体的可以看生成word的那篇,讲的比较详情)。我这里的基本内容如下(内容比较多,节选):

<%--基本信息 --%>
<tr>
  <td class="resume-tit" >姓&nbsp;名</td>
  <td width="112" >${field2}</td>
  <td class="resume-tit" >性&nbsp;别</td>
  <td width="112" >${field3}</td>
  <%--电子照片 --%>
  <td width="120" align="center" rowspan="5">
  	<img width="120" height="150"  src="${field30}" />
  </td>
</tr>
<%--个人基本事迹 --%>
<#if (table4List?size>0)>
    <tr>
      <td class="resume-tit">获奖情况</td>
      <td colspan="4">
      <ul class="jlitem">
      	<#list table4List as t4>
			<li>${t4.order}、
				<b>成果名称</b>:${t4.field3}<br />
	      		<b>获奖名称及等级</b>:${t4.field4} &nbsp;
	      		<b>本人排名</b>:${t4.field5}</li>
		</#list>
	</ul>
      </td>
    </tr>
</#if>

这里有几个说明点

a、基本信息其实还有很多,个人基本事迹也有4个列表,这里只是截取其中一个比较有代表性的。

b、在freemarker中,可以使用<#if>标签进行判断。因为并不是每个人都有获奖的情况,若是没有那么在简历中获奖情况这块就不应该再显示。

c、获取list的长度,用size属性,结构:table4List?size,而且结合if使用时,一定要用括号将table4List?size括起来(形如:<#if (table4List?size>0)>),不然相当于没有判断

d、循环list,使用<#list>标签,各个属性值的获取参照放进去时候的赋值(第三步赋值有具体说明)

 

2、修改后缀名:修改第一步中的html/jsp文件的后缀名,改成ftl格式。

 

3、读取模板文件需要的数据:根据主键序号从数据库中读取基本信息,并放到一个map中进行返回。

基本属性直接使用key-value放到map中,如将姓名为wjl的放到map中,第一步中姓名的代替符是${field2},也就是field2,那么:map.put(”field2“&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值