2010-10-06 17 views
5

Para aplicaciones web, sería útil si las propiedades y métodos del objeto Delphi pudieran "conectarse" con código HTML.¿Hay un motor de plantillas como Velocity o Freemarker para Delphi?

Esto podría ser utilizado de muchas maneras, tanto durante la respuesta HTML construir el escenario y la etapa de procesamiento de solicitudes:

  • acceso a un valor de propiedad de objetos del lado del servidor, que se transmitirán en el código HTML
  • se unen una propiedad de objeto del lado del servidor a un campo de entrada de formulario HTML, para que la aplicación web envíe el formulario HTML con su valor actual y establezca la propiedad al valor ingresado cuando el cliente envíe el formulario
  • enlace un botón de formulario HTML a un método de objeto del lado del servidor, que se ejecutará cuando el cliente envíe el formulario

No he encontrado una biblioteca Delphi nativa que haría más fácil agregar dicho HTML al enlace de objetos Delphi.

Mi pregunta:

¿Hay un motor de plantillas de generación de código con guión como Apache Velocity o Freemarker (ver ejemplos a continuación), que puedo usar en aplicaciones Delphi? (No en el IDE: no estoy buscando una solución basada en OTA o plantillas de código Delphi)

El motor de plantillas vincularía objetos Delphi a una plantilla y reemplazaría las variables de script, y ejecutaría iteraciones/condiciones basadas en valores en los objetos. Las plantillas se pueden anidar (llamar a otras plantillas).

Un caso de uso típico sería la generación dinámica de código HTML, pero también funciona para los generadores de código Delphi.

ejemplo Velocidad:

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

ejemplo 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> 

Otros motores de plantilla que son similares a lo que estoy buscando son Visual Studio's T4 Code Generation y Smarty.

+1

Puede echar un vistazo a nuestro [sistema de plantillas sin lógica de Moustache] (https://forums.embarcadero.com/thread.jspa?messageID=650500), disponible con nuestras otras [bibliotecas de código abierto] (http: //blog.synopse.info/post/2014/04/28/Mustache-Logic-less-templates-for-Delphi-part-1) (parte de [mORMot] (http://mormot.net), pero podría ser usado sin eso). [Moustache] (http://mustache.github.io) es un excelente motor de plantillas. –

Respuesta

1

Delphi on Rails, alojado en el código de google, puede tener algo que pueda usar. http://code.google.com/p/delphionrails/wiki/Getting_Started

+0

¡Gracias por el enlace! Lua es un motor de scripting, ¿cómo lo usaría para crear y ejecutar algo así como las plantillas HTML de ejemplo en mi pregunta? – mjn

+0

No lo he usado yo solo, pero los ejemplos mostraron lo que pensé que estabas después. Todo el código está disponible en el código Goole, por lo que debe descargarlo y comenzar a buscarlo para ver si es posible volver a utilizarlo o aprender algo para crear su propia solución. – Vegar

Cuestiones relacionadas