对于Delphi,是否有像Velocity或Freemarker这样的模板引擎?

时间:2010-10-06 08:57:36

标签: html delphi web-applications template-engine freepascal

对于Web应用程序,如果Delphi对象属性和方法可以与HTML代码“连接”,将会很有帮助。

这可以在HTML响应构建阶段和请求处理阶段以多种方式使用:

  • 访问服务器端对象属性值以在HTML代码中输出
  • 将服务器端对象属性绑定到HTML表单输入字段,以便Web应用程序使用其当前值发送表单HTML,并在客户端提交表单时将该属性设置为输入的值
  • 将HTML表单按钮绑定到服务器端对象方法,该方法将在客户端提交表单时执行

我还没有找到一个原生的Delphi库,可以更容易地将这样的HTML添加到Delphi对象绑定中。

我的问题:

是否有用于脚本代码生成的模板引擎,如Apache VelocityFreemarker(参见下面的示例),我可以在Delphi应用程序中使用它? (不是在IDE中 - 我不喜欢基于OTA的解决方案,或Delphi代码模板)

模板引擎会将Delphi对象绑定到模板并替换脚本变量,并根据对象中的值执行迭代/条件。模板可以嵌套(调用其他模板)。

典型的用例是动态生成HTML代码,但也适用于Delphi代码生成器。

速度示例:

<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
   #if ( $customer.hasPurchased($mud) )
      <tr>
        <td>
          $flogger.getPromo( $mud )
        </td>
      </tr>
   #end
#end
</table>

Freemarker示例:

<html>
<head>
  <title>Welcome!</title>
</head>
<body>
  <h1>Welcome ${user}!</h1>
  <p>Our latest product:
  <a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>  

与我正在寻找的类似的其他模板引擎是Visual Studio's T4 Code GenerationSmarty

2 个答案:

答案 0 :(得分:2)

请看这里:http://dvdchief.com/delphi/ 这是一个免费的delphi模板引擎,比如smarty for php。

答案 1 :(得分:1)

Delphi on Rails,托管在谷歌代码,可能有你可以使用的东西。 http://code.google.com/p/delphionrails/wiki/Getting_Started