FTL自定义函数及宏

1.          可以在FTL中定义函数,调用context(一个全局类)中某些对象的方法,

例如:${getCode(bean.paramtype)},getCode就是自定义的一个函数:

                   <#function getCode id=0>

                   <#return _global.getCodelistName(id)>

</#function>

调用context中_global对象的一个getCodelistName方法。

_global定义:

                  public static void initialize(ServletContextEvent event){

                            event.getServletContext().setAttribute("_global", Global.instance());

                  }

2.          可以在FTL中定义宏,把一些通用的、使用率比较高的FTL代码抽象出接口,提高复用性和代码整洁度,

例如:<@options type="paramtype" value=property.id />,@options是自定义的一个宏,有type和value两个参数,用它们来生成<option>列表。

<#macro options type value=0>

<#list _global.getSysCodelists(type) as item>

<option value="${item.id}" ${(item.id==value)?string("selected","")}>

${item.listname}

</option>

</#list>

</#macro>

你可能感兴趣的:(bean)