freemarker和velocity一样也是一种可以替代JSP的视图技术。而且Struts2中对它的支持要比对velocity也强大的多
<html> <head> <title>FreeMarker使用范例</title> <meta http-equiv="content-type" content="text/html; charset=GB2312"/> </head> <body> <h3 align="left"> FreeMarker使用范例 </h3> <h1>装修材料信息列表</h1> <table border> <tr align="center"> <td>材料名</td> <td>材料价格(单位:元)</td> <td>材料库存量(单位:个)</td> </tr> <#list mList as Material> <tr align="center"> <td>${Material.material}</td> <td>${Material.bid}</td> <td>${Material.mount}</td> </tr> </#list> </table> </body> </html>
<package name="C06.1" extends="struts-default"> <action name="velocity" class="action.VelocityAction"> <result name="success" type="freemarker">/velocity/show.vm</result> </action> </package>
freemarker模板文件后缀名都是“ftl”结尾。它也可以在文件中定义各种各样的html标签和代码。不过它要调用Struts2的标签则调用方法要比vm文件调用Struts2标签要稍微复杂点。
首先在它的文件头部使用assign来导入Struts2的标签定义。代码如下:
<#assign s=JspTagLibs[“/WEB-INF/struts-tags.tld”]/>
另外在每次调用Struts2标签时候前面要加上“@”。
在Struts2中使用freemarker技术,首先要在项目中导入freemarker的jar包。struts.xml文件中,同样笔者用黑体注明了result的返回类型必须是“freemarker”,这样才可以调用ftl模板文件
注意:ftl文件中对英文字符的大小写是很敏感的,因此对某些对象和变量的定义时候,请读者注意大小写问题