Pourquoi utiliser 'redirect = true' dans struts 1. * forward?
-
03-07-2019 - |
Question
J'ai eu quelques problèmes avec ActionMessages
créé lors de l'exécution d'une action qui ne s'affichait pas et j'ai découvert que mes problèmes étaient dus à mes transmissions ayant redirect = true
dans struts-config.xml.
Le comportement par défaut étant redirect = false
, je me suis demandé quels avantages peut-on avoir avec redirect = true
et je n'ai trouvé aucune réponse. Quelqu'un sait-il quand et pourquoi redirect = true
devrait être utilisé dans les actions à venir?
Autres conseils
Redirect envoie une réponse au navigateur qui le force à faire une nouvelle demande. Du point de vue du serveur, le navigateur ne fait qu’une nouvelle requête (même si elle est automatique). Quelques caractéristiques d'une redirection:
- Les paramètres existants et les attributs sont supprimés, une nouvelle demande est formée avec les paramètres vous spécifiez dans l'URL.
- La nouvelle URL est visible dans le navigateur, l'utilisateur peut le mettre en signet.
- Il faut un voyage pour le navigateur et retour, de sorte qu'il peut être plus lent.
Un transfert a lieu sur le serveur. Le navigateur n'est pas impliqué dans cela. Quelques caractéristiques de l'avant:
- Les nouveaux paramètres sont ajoutés ou écrasent les paramètres existants. Les paramètres existants ne peuvent donc pas être supprimés de la requête.
- Des éléments peuvent être ajoutés dans le contexte de la demande, ils resteront disponibles. Vous pouvez transmettre des informations de cette manière.
- L'URL n'est pas modifiée dans le navigateur. Pour le navigateur, l'adresse d'origine reste intacte.
- Vous pouvez transférer uniquement vers une autre URL dans la même application.
Cela dépend donc de ce que vous voulez accomplir. Un forward est généralement parlé plus rapidement. Mais si l'utilisateur doit pouvoir mettre en favori le nouvel emplacement, ce n'est pas une option.
Si vous spécifiez
redirect = "true"
, Struts utilise une redirection côté client [ response.sendRedirect ()
]. La JSP sera invoquée par une nouvelle requête du navigateur et toutes les données stockées dans l'ancienne requête seront perdues.