freemarker你需要了解的几件事

来源:互联网 发布:吉翔数据 编辑:程序博客网 时间:2024/05/21 01:43

一.FreeMarker不能容忍引用不存在的变量,除非明确地告诉它当变量不存在时如何处理。可以指定一个默认值来避免变量丢失这种情况,通过在变量名后面跟着一个!和默认值,如:<h1>Welcome ${user!"Anonymous"}</h1>。也可以在变量名后面通过放置??来询问FreeMarker一个变量是否存在。将它和if指令合并,那么如果user变量不存在的话将会忽略整个问候代码段:<#if user??><h1>Welcome ${user}!</h1></#if>。exp1??和exp1?exists是相等的,而且(exp1)??和(exp1)?exists也是相等的。

二.在web应用中,FreeMarker可以通过${Parameters["参数名"]!}读取http参数,通过${base}可获取上下文路径,相当于在jsp中调用request.getContextPath()。实际上在FreeMarker文件中直接写${request.getContextPath()}也是可以的。

三.Struts2中使用FreeMarker时,解析FreeMarker模板中变量的顺序如下:
1,FreeMarker模板内建的变量;
2,ValueStack中的变量;
3,ActionContext中的变量;
4,HttpServletRequest中的属性;
5,HttpSession中的属性;
6,ServletContext范围的属性.

四.FreeMarker中使用注释的语法为<#-- 内容 -->

五.在作为struts2的视图组件使用时,FreeMarker如果要获取java常量可以这样写:

stack.findValue("@com.zs.mis.bpm.define.production.ProductionTaskProcess@STEP_BEGIN")

0 0