更新历史:
- [新增] #50 增加 Jodd Madvoc 的集成支持
- [新增] #56 增加 MultipathResourceLoader,支持多个模板路径
- [增强] #52 增强 asDate() 方法,默认支持更多的格式,比如 ISO8601, RFC 822
- [增强] #55 对#for指令的增强建议
- [增强] #57 增强 template.path 和 compile.path 的配置功能
- [增强] #58 为JetEngineFactoryBean提供构造注入方式的spring配置
Jodd Madvoc 的集成支持
文档看这个: http://subchen.github.io/jetbrick-template/integrate.html#x2314405
例子看这里: https://github.com/subchen/jetbrick-template-webmvc-samples/
例子下载: jetx-samples-jodd.zip
#for指令的增强
原来在 #for 指令循环的内部,只能通过 ${for.index}
获取当前的索引,现在新增了 3 个属性,如下:
1 | for .index - 循环索引,从 1 开始 |
2 | for .size - 循环大小,如果无法获取,返回- 1 (如果对一个iterator进行循环,则无法获知大小) |
增强 asDate() 方法
原来的 String.asDate() 扩展方法,只能识别下面的格式:
现在新增如下的日期格式识别:
01 | yyyy/MM/dd HH:mm:ss.SSS |
04 | yyyy-MM-dd 'T' HH:mm:ss:SSSZZ", |
05 | EEE, dd MMM yyyy HH:mm:ss z", |
06 | EEE, dd MMM yyyy HH:mm z", |
07 | EEE, dd MMM yy HH:mm:ss z", |
08 | EEE, dd MMM yy HH:mm z", |
09 | dd MMM yyyy HH:mm:ss z", |
增强 template.path 和 compile.path 的配置功能
现在 jetbrick-template.properties 配置文件里面可以使用变量了,如下:
1 | template.path = ${user.dir}/templates |
2 | template.path = ${webapp.dir}/WEB-INF/templates |
那么我们支持哪些变量呢?、
其实这些变量都来自于 System.getProperty(name),只要 System 里有的,都支持。
其中 webapp.dir
是个特殊变量,由 Web 集成框架在系统启动的时候,通过 System.setProperty("webapp.dir", servletContext.getRealPath("/"))
设置的。
Web 集成模式的默认 Loader 更改为 WebResourceLoader
原来的版本,在 Web 集成模式中, ResourceLoader
默认为 FileSystemResourceLoader
, 从 1.1.3 开始,新增 WebResourceLoader
作为默认的 Web 模板加载器。
从webapp目录中加载配置如下:
1 | template.loader = jetbrick.template.web.WebResourceLoader |
2 | template.path = /WEB-INF/templates |
注意,Web 模式如果还在用 FileSystemResourceLoader
的同学,记得把 template.path
修改为 ${webapp.dir}/WEB-INF/xxx
这样的路径,否则就找不到 jetx 文件啦!
增加 MultipathResourceLoader,支持多个模板路径
现在我们支持从多个 path 中载入模板拉!
需要配置如下:
1 | template.loader = jetbrick.template.resource.loader.MultipathResourceLoader |
2 | template.path = file:/path/to, classpath:/, jar:/path/to/sample.jar, webapp:/WEB-INF/templates |
注意:template.path
支持多种路径,由逗号分隔。每个路径由一个前缀开头,代表相应的 ResouceLoader。具体如下:
-
file:
FileSystemResourceLoader -
classpath:
ClasspathResourceLoader -
jar:
JarResourceLoader -
webapp:
WebResourceLoader -
<MyClassLoader>:
用户自定义的 ResourceLoader (完整类名)