一、模板文件目录

代码生成器模板目录配置于 erp/config/config.ini 文件中,配置为:

## 代码生成片段
[generator]
# 模板文件总目录
input_root = /home/wwerp/templates
# 输出文件总目录
output_root = /home/wwerp/frappe-bench/sites/fuhong.tech/public/files


上述配置中模板文件目录配置为:/home/wwerp/templates


相应地,在服务器上必须存在该目录,该目录下每个子目录代表一套模板。在代码生成的页面,系统会读取这些子目录,显示为模板供选择:


二、模板文件

在一个模板目录下,一般包含3个子目录:


1. code目录

代码目录,如Java、C#代码。可以根据代码子包,自由定义子目录。

2. config目录

配置目录,如SQL DDL建表文件、MyBatis的xml映射文件

3. page目录

页面目录,如jsp、html文件


上述code目录、config目录、page目录下可以包含多个子目录,子目录下又可以包含多个模板文件,所谓模板文件,如下所示:


每个模板文件文件名上面可以带变量,变量以符号“[]”包含,模板文件文件名变量包括:

变量名称变量含义
[TableName]数据库表名,如:system_user_base
[TableDesc]数据库表名称(描述),如:系统用户基本信息
[ModuleName]模块名称,比如system_user_base表对应ModuleName为:system
[PojoName]POJO的名称,比如system_user_base表对应PojoName为:User
[LowerFirstPojoName]POJO的名称(首字母小写),比如system_user_base表对应LowerFirstPojoName:user

三、模板文件内容

以code模板为例,模板文件内容可能是一段java代码,不过代码中有很多的变量标签,比如以下部分模板文件内容:


模板文件使用 Jinja2 模板技术编写,针对一个具体的数据库表,生成相应的代码内容。有关 Jinja2 模板技术的语法,可以参见网站文档:http://doc.yonyoucloud.com/doc/jinja2-docs-cn/index.html


除 Jinja2 模板技术常用函数外,增加了下列过滤器:

过滤器名称过滤器含义原数据过滤器参数
str | camel(upperFirst : bool)将带有下划线“_”的字符串转变为驼峰格式的字符串@param str 带有下划线“_”的字符串@param upperFirst 首字母是否大写
str | removeSuffix(suffix : str)指定源字符串末尾删除后缀@param str 源字符串@param suffix 需要删除的后缀
str | upperFirst指定源字符串首字母变为大写@param str 源字符串
str | lowerFirst指定源字符串首字母变为小写@param str 源字符串
str1 | startsWith(str2 : str)检查str1是否以str2开头@param str1 字符串1@param str2 字符串2
str1 | endsWith(str2 : str)检查str1是否以str2结尾@param str1 字符串1@param str2 字符串2

模板文件使用的数据对象及其属性如下:


四、生成的文件目录规则

模板目录下子目录任意,一般含有3个目录code、config、page,其中code目录表示代码模板目录,该目录下的生成的文件目录规则遵守如下约定:

设:
1.代码Code包前缀:cn.js.icode
2.数据库表名称:basis_employee_base
3.存在模板:\code\entity\[PojoName].java
则:
1.该数据库表对应所属模块:basis
2.该数据库表对应PojoName:Employee
3.上述模板\code\entity\[PojoName].java将生成:
cn.js.icode.basis.entity.Employee
并按照以下目录格式放入结果压缩保中:
cn\js\icode\basis\entity\Employee.java


除code子目录外,模板目录下其它子目录下的模板文件无类似约定。


南京复弘教育科技有限公司版权所有,转载请标明出处!!