Delphi html mvc
基于QDAC的一个模版解析程序。
需要应用qdac www.qdac.cc https://github.com/pmiscn/MuObjectPool https://github.com/pmiscn/FilePackage
当时为了找一个类似php里面的模版解析,delphi下看了几个,感觉不是我想要的,就自己写了一个。 数据类型基本以json为主,集成了四则运算,支持if for each等常见的逻辑处理。 支持自定义节点扩展,用plugins扩展
数据源支持本地问题,数据库,httpget,插件,以及我的filePackage,目录等等,支持扩展,一般来说,只要能获得json字符串的都能当数据源。
下面是几个例子;
<#data origin="mudb" type="json" path=""> { //这个如果有,就用,没有,就从配置文件 Type:"mssql", //默认 Config:{ Server:{ }, SQL:"select top 50 userid,username ,Department,office,addtime from [dbo].[T_Users] where userid like :UID for json auto", Type:"sqljson" // sql proc sqljson procjson }, //提交的值,不能是数组和对象 Values:{ UID:"0%" // id:"$id", //$是Url的 querystring 参数 } }
<#each range="" filter="@II%2==0" datapath="" loopvar="@II"> <#each range="" filter="SubStr(@userid,1,1)=='6'" datapath="" loopvar="@II"> "row1"<#else>"row2" ><#>@
id userid username Department office addtime <#>(@II+1) <#>@userid+":"+@username <#>@username <#>@Department <#>@office <#>FormatDatetime("yyyy年MM月dd日",@addtime) <#>(@II+1) <#>@userid+":"+@username <#>@username <#>@Department <#>@office <#>FormatDatetime("yyyy年MM月dd日",@addtime)
<#for range="0..4" datapath="Data" filter="@II%2==1" loopvar="@II"> <#for range="0..2" datapath="" loopvar="@I" filter="@II==@I"> <#> @I+1 <#>@[@I].Name
- <#each datapath="Data" range="0..1" loopvar="@I" filter="Sum(Number(@ID)+1)== 2">
- <#>@I+":"+@Name
- <#each datapath="Data" range="" loopvar="@I" filter='( (@ID >= "1") || (@ID== "2") )'>
- <#>@Name
- <#each datapath="Data" range="0..2" loopvar="@I" filter="1=1">
- <#>@Name
- <#each datapath="Data" range="0,1,2" loopvar="@I" filter='((@ID= "1") || ((@ID= "2") or (@ID == "3" )))'>
- <#>@Name
<#>@Count
-
<#each datapath="Data">
-
<#if @ID="1">
- <#> @ID+":"+@Name: <#each datapath="Score">
- <# @ />
- <#each datapath="Data">
- <# @Name />
<#include path="header.htm" parse=true />