jetbrick-template 1.1.3 新功能介绍

胥诚
2023-12-01

更新历史:

  • [新增] #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进行循环,则无法获知大小)
3 for.first   - 是否是第一个
4 for.last    - 是否是最后一个

增强 asDate() 方法

原来的 String.asDate() 扩展方法,只能识别下面的格式:

1yyyy-MM-dd HH:mm:ss.SSS
2yyyy-MM-dd HH:mm:ss
3yyyy-MM-dd
4HH:mm:ss

现在新增如下的日期格式识别:

01yyyy/MM/dd HH:mm:ss.SSS
02yyyy/MM/dd HH:mm:ss
03yyyy/MM/dd
04 yyyy-MM-dd'T'HH:mm:ss:SSSZZ",
05EEE, dd MMM yyyy HH:mm:ss z",
06EEE, dd MMM yyyy HH:mm z",
07EEE, dd MMM yy HH:mm:ss z",
08EEE, dd MMM yy HH:mm z",
09dd MMM yyyy HH:mm:ss z",
10dd MMM yyyy HH:mm z",
11dd MMM yy HH:mm:ss z",
12dd MMM yy HH:mm z",

增强 template.path 和 compile.path 的配置功能

现在 jetbrick-template.properties 配置文件里面可以使用变量了,如下:

1template.path = ${user.dir}/templates
2template.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目录中加载配置如下:

1template.loader = jetbrick.template.web.WebResourceLoader
2template.path = /WEB-INF/templates

注意,Web 模式如果还在用 FileSystemResourceLoader 的同学,记得把 template.path 修改为 ${webapp.dir}/WEB-INF/xxx 这样的路径,否则就找不到 jetx 文件啦!

增加 MultipathResourceLoader,支持多个模板路径

现在我们支持从多个 path 中载入模板拉!

需要配置如下:

1template.loader = jetbrick.template.resource.loader.MultipathResourceLoader
2template.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 (完整类名)
 类似资料: