Mise à jour du 18/06/2024.
Le service SrvPageError repose sur la classe du même nom. Cette classe est intégrée à la librairie webapp. Ce service fournit une page HTML qui décrite une erreur avec :
Le message d'erreur, sa description, le libellé du lien et son URL sont des données paramétrables.
La librairie webapp dispose d'une page "patron" HTML personnalisable. Si pour une raison ou une autre, le chargement de cette page échoue, une page HTML est créée sous forme d'un DOM via la libaririe html.
Le code de statut HTTP imposé par ce service est 400 (Bad Request).
Ce service n'utilise pas la session de navigation de l'utilisateur.
Comme tout service, la production de la page se fait via la méthode :
void SrvErrorPage::process(const QHttpServerRequest& request, QHttpServerResponse& response,
shared_ptr<Session> spSession, shared_ptr<<QMap<QString,QStringList>> httpParameters = nullptr,
shared_ptr<QMap<QString,QString>> spVariables)Ici, seuls les paramètres request, response et spVariables sont pertinents. Vous n'avez aucune action sur le paramètre request qui est livré par l'application au moment où l'application invoque le service ni sur le paramètre response qui contient au retour la réponse HTTP du service.
Le seul paramètre sur lequel vous ayez une action de personnalisation est spVariables. Ce paramètre est un pointeur intelligent sur un dictionnaire de chaînes de caractères. C'est ce dictionnaire qui permet de personnaliser la réponse du service. La tableau qui suit énumère les clefs autorisées ainsi que leur rôle :
| Clef | Rôle de la valeur |
|---|---|
| description | Attribut "description" d'une balise <meta> de l'en-tête HTML. |
| customStyles | Chaîne de caractères contenant la définition de classes de style à embarquer dans l'en-tête de la page HTML. |
| customScript | Chaîne de caractères contenant un bloc de code JavaScript à ajouter au sein d'une balise <script> en fin de corps HTML. |
| message | Texte du message d'erreur. |
| detail | Détails associés à l'erreur ou suggestions. |
| linkLabel | Libellé du lien de poursuite de la navigation. |
| returnLink | URL du lien de poursuite de la navigation. |
La clef customStyles permet d'embarquer des classes de style pour adapter la page au plus proche d'une charte graphique. La plupart des composants HTML disposent d'un attribut id qui permet de les personnaliser facilement via une ou plusieurs classes de style. Commme le code HTML de la page est susceptible d'évoluer il n'est pas utile de fournir la liste de ces identifiants. Nous recommandons de produire la page brute, d'en récupérer les identifiants puis d'appliquer les classes de style afin d'obtenir les effets souhaités. Les méthodes fromTemplate() et fromScratch()permettent de produire cette page sans besoin d'une infrastructure web puis de maquetter votre adaptation.
De la même manière la clef customScript permet d'embarquer du code JavaScript de manière à produire des effets particuliers ou complémentaires. Il est recommandé de le faire à partir d'une maquette dont la base est fournie par le processus décrit précédemment.
Rédaction par Jean-Marie Piatte (1983-2021)