FreeMarker模板引擎

时间:2022-12-12 22:47:03

现在开发的项目,也是基于SOA架构,每个功能接口都是用WebService实现,Web服务的通信协议就是用XML来传输。

以前写WebService都是自动生成XML,没想到这项目竟然要自己定义XML,而生成XML报文的模板引擎就是FreeMarker。

说到FreeMarker就不得不提到Struts2框架

用Struts2做开发,如果写jsp用的是struts标签的话,经常遇到FreeMarker的报错信息,原因就是Struts2里的UI标签库,就是基于FreeMarker模板引擎来生成。

比如在jsp页面里,引入<s:combobox>标签,如下

FreeMarker模板引擎

jsp由容器编译生成,输出到浏览器中,查看它的html源代码,变成这样。

FreeMarker模板引擎

以上html代码生成的模板,就是源自于struts2内部自定义的FreeMarker模板。

在struts2-core的jar包中,打开combobox.ftl这个模板文件后,会发现里面的内容,跟上面生成的html源码有很大的关联。里面 <#if xxx>、<#include xx>、<@s.iterator xx>就是FreeMarker的语法。

FreeMarker模板引擎

原始版的Eclipse在编辑FreeMarker模板时,只能把它当做文本文件来编辑,不过可以通过安装FreeMarker的插件,提供语法着色和提示的功能。

FreeMarker模板引擎

安装完插件后,重启Eclipse,文件的图标,和编辑器变成这样。

FreeMarker模板引擎

语法提示功能

FreeMarker模板引擎