更新历史:
- [新增] #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 个属性,如下:
for.index - 循环索引,从 1 开始
for.size - 循环大小,如果无法获取,返回-1(如果对一个iterator进行循环,则无法获知大小)
for.first - 是否是第一个
for.last - 是否是最后一个
增强 asDate() 方法
原来的 String.asDate() 扩展方法,只能识别下面的格式:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
HH:mm:ss
现在新增如下的日期格式识别:
yyyy/MM/dd HH:mm:ss.SSS
yyyy/MM/dd HH:mm:ss
yyyy/MM/dd
yyyy-MM-dd'T'HH:mm:ss:SSSZZ
EEE, dd MMM yyyy HH:mm:ss z
EEE, dd MMM yyyy HH:mm z
EEE, dd MMM yy HH:mm:ss z
EEE, dd MMM yy HH:mm z
dd MMM yyyy HH:mm:ss z
dd MMM yyyy HH:mm z
dd MMM yy HH:mm:ss z
dd MMM yy HH:mm z
增强 template.path 和 compile.path 的配置功能
现在 jetbrick-template.properties 配置文件里面可以使用变量了,如下:
template.path = ${user.dir}/templates
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目录中加载配置如下:
template.loader = jetbrick.template.web.WebResourceLoader
template.path = /WEB-INF/templates
注意,Web 模式如果还在用 FileSystemResourceLoader
的同学,记得把 template.path
修改为 ${webapp.dir}/WEB-INF/xxx
这样的路径,否则就找不到 jetx 文件啦!
增加 MultipathResourceLoader,支持多个模板路径
现在我们支持从多个 path 中载入模板拉!
需要配置如下:
template.loader = jetbrick.template.resource.loader.MultipathResourceLoader
template.path = file:/path/to, classpath:/, jar:/path/to/sample.jar, webapp:/WEB-INF/templates
注意:template.path
支持多种路径,由逗号分隔。每个路径由一个前缀开头,代表相应的 ResouceLoader。具体如下:
file:
FileSystemResourceLoaderclasspath:
ClasspathResourceLoaderjar:
JarResourceLoaderwebapp:
WebResourceLoader<MyClassLoader>:
用户自定义的 ResourceLoader (完整类名)