模板基础配置

Beetl提供不但功能齐全,而且还有很多独特功能,通过简单的配置文件,就可以定义众多的功能,默认情况下,Configuration类总是会先加载默认的配置文件(位于/org/beetl/core/beetl-default.properties,作为新手,通常只需要关注3,4,5,6行定界符的配置,以及12行模板字符集的配置就可以了,其他配置会在后面章节陆续提到,同时,对于Spring等框架,有些配置将会被这些框架的配置覆盖,需要参考后面章节)下,其内容片断如下:

  1. #默认配置
  2. ENGINE=org.beetl.core.engine.FastRutimeEngine
  3. DELIMITER_PLACEHOLDER_START=${
  4. DELIMITER_PLACEHOLDER_END=}
  5. DELIMITER_STATEMENT_START=<%
  6. DELIMITER_STATEMENT_END=%>
  7. DIRECT_BYTE_OUTPUT = FALSE
  8. HTML_TAG_SUPPORT = true
  9. HTML_TAG_FLAG = #
  10. HTML_TAG_BINDING_ATTRIBUTE = var
  11. NATIVE_CALL = TRUE
  12. TEMPLATE_CHARSET = UTF-8
  13. ERROR_HANDLER = org.beetl.core.ConsoleErrorHandler
  14. NATIVE_SECUARTY_MANAGER= org.beetl.core.DefaultNativeSecurityManager
  15. MVC_STRICT = FALSE
  16. #资源配置,resource后的属性只限于特定ResourceLoader
  17. RESOURCE_LOADER=org.beetl.core.resource.ClasspathResourceLoader
  18. #classpath 根路径
  19. RESOURCE.root= /
  20. #是否检测文件变化,开发用true合适,但线上要改为false
  21. RESOURCE.autoCheck= true
  22. #自定义脚本方法文件的Root目录和后缀
  23. RESOURCE.functionRoot = functions
  24. RESOURCE.functionSuffix = html
  25. #自定义标签文件Root目录和后缀
  26. RESOURCE.tagRoot = htmltag
  27. RESOURCE.tagSuffix = tag
  28. #### 扩展 ##############
  29. ## 内置的方法
  30. FN.date = org.beetl.ext.fn.DateFunction
  31. ......
  32. ##内置的功能包
  33. FNP.strutil = org.beetl.ext.fn.StringUtil
  34. ......
  35. ##内置的默认格式化函数
  36. FTC.java.util.Date = org.beetl.ext.format.DateFormat
  37. .....
  38. ## 标签类
  39. TAG.include= org.beetl.ext.tag.IncludeTag
  40. TAG.html.include= org.beetl.ext.tag.html.IncludeResourceHtmlTag
  41. TAG.html.foreach= org.beetl.ext.tag.html.ForeachHtmlTag

这配置文件整体说明了Beetl提供的功能

第2行配置引擎实现类,默认即可.

第3,4行指定了占位符号,默认是${ },也可以指定为其他占位符。

第5,6行指定了语句的定界符号,默认是<% %>,也可以指定为其他定界符号

第7行指定IO输出模式,默认是FALSE,即通常的字符输出,在考虑高性能情况下,可以设置成true。详细请参考高级用法

第8,9行指定了支持HTML标签,且符号为#,默认配置下,模板引擎识别<#tag ></#tag>这样的类似html标签,并能调用相应的标签函数或者模板文件。你也可以指定别的符号,如bg: 则识别<bg:

第10行 指定如果标签属性有var,则认为是需要绑定变量给模板的标签函数

第11行指定允许本地Class直接调用

第12行指定模板字符集是UTF-8

第13行指定异常的解析类,默认是ConsoleErrorHandler,他将在render发生异常的时候在后台打印出错误信息(System.out)。

第14行指定了本地Class调用的安全策略

第15行配置了是否进行严格MVC,通常情况下,此处设置为false.

第18行指定了默认使用的模板资源加载器,注意,在beetl与其他MVC框架集成的时候,模板加载器不一定根据这个配置,比如spring,他的RESOURCE_LOADER以spring的配置为准

第20到22行配置了模板资源加载器的一些属性,如设置根路径为/,即Classpath的顶级路径,并且总是检测模板是否更改

第23行配置了自定义的方法所在的目录以及文件名后缀。beetl既支持通过java类定义方法,也支持通过模板文件来定义方法

第26行配置了自定义的html标签所在的目录以及文件名后缀。beetl既支持通过java类定义标签,也支持通过模板文件来定义标签

第31行注册了一个date方法,其实现类是org.beetl.ext.fn.DateFunction

第34行注册了一个方法包strutil,其实现类org.beetl.ext.fn.StringUtil,此类的每个public方法都将注册为beetl的方法

第37行注册了一个日期格式化函数

第40行注册了一个include标签函数

模板开发者可以创建一个beetl.properties的配置文件,此时,该配置文件将覆盖默认的配置文件属性,比如,你的定界符考虑是<!—:—> ,则在beetl.properties加入一行即可,并将此配置文件放入Classpath根目录下即可。 Configuration.defaultConfiguration()总是先加载系统默认的,然后再加载Beetl.properties的配置属性,如果有重复,用后者代替前者的配置

  1. #自定义配置 DELIMITER_STATEMENT_START=<!—: DELIMITER_STATEMENT_END=—> DELIMITER_PLACEHOLDER_START=#{ DELIMITER_PLACEHOLDER_END=}

3.0 以后版本支持第二对占位符,定界符

  1. DELIMITER_STATEMENT_START2=@ DELIMITER_STATEMENT_END2= DELIMITER_PLACEHOLDER_START2=${ DELIMITER_PLACEHOLDER_END2=}