java根据ftl生成html_java 使用Freemarker 生成html

1、定义模板,模板中的变量就是程序需要set的值。

Insert title here

function doSubmit(){

document.getElementById("form1").submit();

}

#list>

2、java代码实现

private Configuration freemarke_cfg = null;

public static void main(String agrs []) throws Exception {

String path = FreemarkerTest.class.getResource("/").getPath();

FreemarkerTest test = new FreemarkerTest();

Map paramMap = new HashMap();

paramMap.put("url", "http://www.baidu.com");

// map 集合 循环的

Map weaponMap = new HashMap();

weaponMap.put("data", "1");

weaponMap.put("code", "00");

weaponMap.put("message", "成功");

paramMap.put("weaponMap", weaponMap);

test.geneHtmlFile(path, "template", paramMap, path, "tempFileName");

}

protected Configuration getFreeMarkerCFG(String sTemplateFilePath) {

if (null == freemarke_cfg) {

freemarke_cfg = new Configuration();

freemarke_cfg.setEncoding(Locale.CHINA, "UTF-8");

// 基于类路径的模版加载器

freemarke_cfg.setClassForTemplateLoading(this.getClass(),

"/websiteroot/freemarker");

try {

freemarke_cfg.setDirectoryForTemplateLoading(new File(

sTemplateFilePath));

} catch (Exception e) {

e.printStackTrace();

}

}

return freemarke_cfg;

}

/**

* 生成静态文件

*

* @param templatePath

* :模板路径

* @param templateFileName

* :模板名称

* @param propMap

* :存放数据模型的Map

* @param htmlFilePath

* :生成HTML页面的存放路径

* @param htmlFileName

* :生成html页面的名称

* */

public boolean geneHtmlFile(String templatePath, String templateFileName,

Map propMap, String htmlFilePath,

String htmlFileName) {

try {

Template t = getFreeMarkerCFG(templatePath).getTemplate(

templateFileName);

t.setEncoding("UTF-8");

creatDirs(htmlFilePath);

File afile = new File(htmlFilePath + "/" + htmlFileName);

// 设置生成的文件编码为UTF-8

// 服务器不支持UTF-8格式HTML时候使用ANSI格式HTML文件,即系统默认编码

Writer out = new BufferedWriter(new OutputStreamWriter(

new FileOutputStream(afile), "UTF-8"));

t.process(propMap, out);

} catch (IOException e) {

logger.error("Error " + htmlFileName, e);

return false;

} catch (TemplateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return true;

}

public static boolean creatDirs(String path) {

File aFile = new File(path);

if (!aFile.exists()) {

return aFile.mkdirs();

} else {

return true;

}

}

3、最终会生成一个 tempFileName 的文件。在项目的target\classes 路径下面。成功后会有如下展示

Insert title here

function doSubmit(){

document.getElementById("form1").submit();

}

4、所需要的jar包

需要jar包

org.freemarker

freemarker

2.3.16

如有疑问可以找我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值