# 模板开发

模板渲染引擎采用的是jfinal的enjoy模板引擎 (opens new window),因此模板的编写语法,请参考 jfinal-Enjoy 模板引擎 (opens new window)

# 目录结构

以官方标准单表模板为例:进入模板中心,点击源码编辑

源码编辑

可以看到具体的模板目录与文件

源码编辑器

所有的目录均是包路径下的直接目录(除 views 、_include目录外),在代码生成部署后会直接放到指定代码生成器配置的包路径下!

# 特殊目录

即有特殊意义的目录

  1. views

指jweb-adai下的视图文件存放目录,所有需要生成的视图文件,请放在这个目录,在代码生成部署后,会放到 {webappp}/WEB-INF/views/{包路径目录}/gid_{代码生成器编号}/下!

视图代码部署目录结构

  1. _include

引用文件目录,里面放着可以被其它文件引用的代码文件,就像java程序 引入 外部包一样。不直接进行代码生成,供其它代码引入使用!

视图模板注意事项

在编写视图模板时,由于视图模板与视图生成后的代码均需要jfinal的enjoy模板引擎来渲染。即用enjoy模板引擎渲染后的代码需要在enjoy模板引擎下执行。
所以编写时要格外小心仔细,注意“#”符号的转义输出

template_views_code_action

# 模板全局对象

对象名称 关键字 描述 用例
代码生成器对象 generator 代码生成器模型的对象,详情信息参考代码:GeneratorModel (opens new window) #(generator.getGeneratorId())
代码生成器编号 generatorId 代码生成器编写直接引用,#(generatorId) 等价于 #(generator.getGeneratorId()) #(generatorId)
代码生成器配置对象 generatorConfig 包含代码生成器配置信息对象,参考:GeneratorConfig (opens new window) #(generatorConfig.packagePath)
表列表对象 tables 配置表列表对象,参考类型:List<TableCodeModel (opens new window)> #(tables.get(0).primaryKey)
表索引对象 table{n} 单表索引直接引用对象,如table1,table2,参考类型:TableCodeModel (opens new window) ,扩展如了这些属性:, 其中 table1 等价于 tables.get(0) #(table1.primaryKey) , #(table2.primaryKey)
模板对象 template 模板配置信息对象,参考类型:TemplateModel (opens new window) #(template.getTemplateId())
模板关键字 templateKey 模板关键字直接引用,#(templateKey) 等价于 #(template.getTemplateKey()) #(templateKey)
控制层基础url baseControllerUri 代码controller的base uri , 等价于 #(generatorConfig.getCtlUri()) #(baseControllerUri)
包名 basePackageName 代码的包名,如:cc.jweb.adai.web.controller, 等价于 #(generatorConfig.getPackagePath()) #(basePackageName)
包路径目录 basePackagePath 代码的包名目录路径,如:/cc/jweb/adai/web/controller #(basePackagePath)
当前时间对象 currentDatetime 当前时间对象,类型:java.util.Date #date(currentDatetime, "yyyy-MM-dd HH:mm:ss")
当前时间戳 currentTimeMillis 当前时间戳,类型:long #(currentTimeMillis)

更多数据类型信息,请参考:

  1. 源码 (opens new window)
  2. CodeGenerator

# 模板共享方法

默认enjoy引擎添加了如下共享方法对象可供使用,关于enjoy共享方法,请参考:Shared Method 扩展 (opens new window)

  1. 字符串处理工具类 StringUtils (opens new window)
  2. 驼峰命名转换类 HumpNameUtils (opens new window)
  3. JSON转换工具类 JsonUtils (opens new window)
  4. 代码生成器工具类 GeneratorUtils (opens new window)
  5. 代码模型工具类 ModelUtils (opens new window)

如需要扩展共享方法,请在jboot.properties中配置如下信息

# 渲染器配置
# 扩展HTML模板解析引擎共享方法类
jweb.render.template.engine.shareMethodClasses=cc.jweb.adai.web.system.generator.utils.ModelUtils,cc.jweb.adai.web.system.generator.utils.GeneratorUtils
1
2
3

如有不懂,可以参考已经写好的模板源码!或者联系imlzw@vip.qq.com