2010-10-06 23 views
5

Pour les applications Web, il serait utile que les propriétés et les méthodes de l'objet Delphi puissent être "connectées" au code HTML.Existe-t-il un moteur de template comme Velocity ou Freemarker pour Delphi?

Cela pourrait être utilisé à bien des égards, à la fois au cours de la réponse HTML étape de la construction et l'étape de traitement de la demande:

    accès
  • une valeur de propriété d'objet côté serveur à la sortie dans le code HTML
  • bind une propriété d'objet côté serveur à un champ de saisie de formulaire HTML, de sorte que l'application Web envoie le formulaire HTML avec sa valeur actuelle et définit la propriété à la valeur entrée lorsque le client soumet le formulaire
  • lier un bouton de formulaire HTML à une méthode d'objet côté serveur, qui sera exécutée lorsque le client soumettra le formulaire

Je n'ai pas trouvé de bibliothèque Delphi native qui faciliterait l'ajout d'un tel HTML à une liaison d'objet Delphi.

Ma question:

Y at-il un moteur de modèle pour la génération de code scripté comme Apache Velocity ou Freemarker (voir exemples ci-dessous) que je peux utiliser dans les applications Delphi? (pas dans l'EDI - je ne cherche pas une solution basée sur OTA, ou des modèles de code Delphi)

Le moteur de modèle lierait des objets Delphi à un modèle et remplacerait les variables de script, et exécuterait des itérations/conditions basées sur des valeurs dans les objets. Les modèles peuvent être imbriqués (appeler d'autres modèles).

Un cas d'utilisation typique serait la génération dynamique de code HTML, mais aussi pour les générateurs de code Delphi.

exemple de vitesse:

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

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

D'autres moteurs de modèles qui sont semblables à ce que je cherche sont Visual Studio's T4 Code Generation et Smarty.

+1

Vous pouvez jeter un oeil à notre [système de modèle sans logique Moustache] (https://forums.embarcadero.com/thread.jspa?messageID=650500), disponible avec nos autres [bibliothèques Open Source] (http: //blog.synopse.info/post/2014/04/28/Mustache-Logic-less-templates-for-Delphi-part-1) (partie de [mORMot] (http://mormot.net), mais pourrait être utilisé sans elle). [Moustache] (http://mustache.github.io) est un excellent moteur de template. –

Répondre

1

Delphi on Rails, hébergé chez google code, peut avoir quelque chose que vous pouvez utiliser. http://code.google.com/p/delphionrails/wiki/Getting_Started

+0

Merci pour le lien! Lua est un moteur de script, comment pourrais-je l'utiliser pour créer et exécuter quelque chose comme les exemples de modèles HTML dans ma question? – mjn

+0

Je ne l'ai pas utilisé moi-même, mais les exemples ont montré ce que je pensais que vous après. Tout le code est disponible à partir du code goole, donc vous devriez télécharger et commencer à creuser pour voir s'il est possible de réutiliser certains d'entre eux ou d'apprendre quelque chose pour faire votre propre solution. – Vegar