Chaînage de générateurs de page

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du composant générateur de page


Le texte de substitution venant du gestionnaire d'événement HTTPProd.OnHTMLTag ne doit pas nécessairement être la séquence HTML finale que vous voulez utiliser dans le message de réponse HTTP. Vous pouvez utiliser plusieurs générateurs de page, auquel cas le résultat de l'un sera passé au suivant.

La façon la plus simple de chaîner des générateurs de page consiste à associer chaque générateur de page à un élément d'action particulier, tous les éléments d'action disposant des mêmes PathInfo et MethodType. Le premier élément d'action définit le contenu du message de réponse Web à partir de son générateur de contenu, mais son gestionnaire d'événement OnAction veille à ce que le message ne soit pas considéré comme traité. L'élément d'action suivant utilise la méthode ContentFromString de son générateur associé pour manipuler le contenu du message de réponse Web, etc. Les éléments d'action qui suivent le premier élément d'action utilisent un gestionnaire d'événement OnAction comme suit :

 procedure WebModule1.Action2Action(Sender: TObject; Request: TWebRequest;
    Response: TWebResponse; var Handled: Boolean);
 begin
   Response.Content := PageProducer2.ContentFromString(Response.Content);
 end;
 void __fastcall WebModule1::Action2Action(TObject *Sender,
    TWebRequest *Request, TWebResponse *Response, bool &Handled)
 {
   Response->Content = PageProducer2->ContentFromString(Response->Content);
 }

Prenons comme exemple une application qui affiche des pages de calendrier en réponse à des messages de requête indiquant le mois et l'année à afficher. Chaque page de calendrier contient une image suivie de l'année et du mois, placés entre des images des mois précédent et suivant, puis du calendrier lui-même. L'image finale aurait l'aspect suivant :

Calex.jpg

Le format général du calendrier réside dans un fichier de modèle. Il ressemble à ceci :

<HTML>
<Head></HEAD>
<BODY>
<#MonthlyImage> <#TitleLine><#MainBody>
</BODY>
</HTML>

Calex.jpg

  • Remplace <#MonthlyImage> par <#Image Month=Janvier Year=2000>.
  • Remplace <#TitleLine> par <#Calendar Month=Décembre Year=1999 Size=Small> Janvier 2000 <#Calendar Month=Février Year=2000 Size=Small>.
  • Remplace <#MainBody> par <#Calendar Month=Janvier Year=2000 Size=Large>.

Le format général du calendrier réside dans un fichier de modèle. Il ressemble à ceci :

Voir aussi