For web applications, it would be helpful if Delphi object properties and methods could be "connected" with HTML code.
This could be used in many ways, both during the HTML response build stage and the request processing stage:
- access a server-side object property value to output it in the HTML code
- bind a server-side object property to a HTML form input field, so that the web application sends the form HTML with its current value, and set the property to the entered value when the client submits the form
- bind a HTML form button to a server-side object method, which will be executed when the client submits the form
I have not found a native Delphi library which would make it easier to add such HTML to Delphi object binding.
My question:
Is there a template engine for scripted code generation like Apache Velocity or Freemarker (see examples below) which I can use in Delphi applications? (not in the IDE - I am not lookig for a OTA based solution, or Delphi code templates)
The template engine would bind Delphi objects to a template and replace the script variables, and execute iterations / conditions based on values in the objects. Templates can be nested (call other templates).
A typical use case would be the dynamic generation of HTML code, but also work for Delphi code generators.
Velocity example:
<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 example:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
Other Template Engines which are similar to what I am looking for are Visual Studio's T4 Code Generation and Smarty.