Un traitement soumis au serveur peut généralement être divisé en deux étapes. La première étape interroge l'état du serveur (requêtes ou met à jour la base de données), et la deuxième étape sélectionne une page de résultats appropriée et le renvoie à l'utilisateur (le contenu du résultat à discuter ici).
Struts2 fournit un support pour différents types de résultats de retour, les communs incluent JSP, Freemarker, Velocity, etc.
Les différents types de résultats de retour pris en charge par Struts2 sont:
| nom | illustrer |
|---|---|
| Résultats de la chaîne | Utilisé pour gérer les chaînes d'action |
| Résultats du répartiteur | Utilisé pour se tourner vers les pages, gérez généralement JSP |
| Résultats du freemarker | Gérer les modèles Freemarker |
| Résultats httpheader | Utilisé pour contrôler le comportement HTTP spécial |
| Résultat de redirection | Rediriger vers une URL |
| Rediriger les résultats de l'action | Rediriger vers une action |
| Résultats des cours d'eau | Envoyez l'objet EntoinSream au navigateur, généralement utilisé pour traiter les téléchargements de fichiers |
| Résultats de la vitesse | Gérer les modèles de vitesse |
| Résultats XLS | Traiter les modèles XML / XLST |
| Résultat en texte en clair | Afficher le contenu du fichier d'origine, tel que le code source de fichier |
| S2Plugins: Résultat des carreaux | Utiliser en combinaison avec des carreaux |
De plus, le type de résultat tiers comprend également le plugin JasperReports, qui est spécialement utilisé pour traiter le rapport de la sortie du type JasperReport.
Il existe déjà des définitions pour tous les types de résultats dans le fichier Struts-Default.xml:
<Sult-Types> <result-type name = "chain" class = "com.openymphony.xwork2.actionchainresult" /> <résultat-type name = "dispatcher" class = "org.apache.struts2.dispatcher.servletdispatcherrResult" Default = "true" /> <result-type " name = "freemarker" class = "org.apache.struts2.views.freemarker.freemarkerresult" /> <résultat-type name = "httpheader" class = "org.apache.struts2.dispatcher.httpheaderResult" /> <résultat-type " name = "redirect" class = "org.apache.structs2.dispatcher.servletRerecrecrelt" /> <result-type name = "redirectaction" class = "org.apache.structs2.dispatcher.servletActionRelectResult" /> <résultat-type name = "stream" class = "org.apache.structs2.dispatcher.streamresult" /> <result-type name = "Velocity" class = "org.apache.struts2.dispatcher.velocityResult" /> <result-type name = "xslt" class = "org.pache.struts2.views.xslt.xsltrersult" name = "PlainText" class = "org.apache.struts2.dispatcher.plaintexTresult" /> <! - Formulaire de nom déprécié prévu pour la suppression dans les jambes de force 2.1.0.Les versions de camecase sont préférées. Voir WW-1707 -> <résultat-type name = "redirect-action" class = "org.apache.structs2.dispatcher.servletActionRelectResult" /> <result-type name = "plaintex
À partir du code ci-dessus, nous pouvons voir que lorsque le type de résultat n'est pas spécifié, il est utilisé.
Définir une valeur de résultat,
<result name = "Success" type = "Dispatcher"> <param name = "emplacement"> / merci
Étant donné que la valeur par défaut du type est le répartiteur, il n'est pas nécessaire de le définir ici. De plus, la valeur par défaut du nom est le succès, il n'est donc pas nécessaire de le définir ici.
Le code ci-dessus peut être abrégé comme:
<sult> <param name = "location"> / merci
De plus, les paramètres de localisation peuvent également être directement désinstallés à partir de la balise de résultat, donc le moyen le plus simple d'écrire le code ci-dessus est:
<Sult> /thankyou.jsp </sultam>
Nous pouvons également définir plusieurs résultats différents
<Action name = "Hello"> <sestult> /hello/result.jsp </ result> <result name = "error"> / hello / error.jsp </ result> <result name = "input"> / hello / input.jsp </ result> </ action>
La signification du code ci-dessus est que l'action avec le nom Hello a trois retours, et ce sont tous des types de répartiteurs (type par défaut). Les noms de ces trois valeurs de retour sont le succès (valeur par défaut), l'erreur et l'entrée. Les chemins de page correspondants sont /hello/result.jsp, /hello/error.jsp, et /hello/input.jsp.
Parfois, nous avons besoin d'un résultat global défini. Pour le moment, nous pouvons définir un résultat global dans le package, par exemple:
<lobal-résults> <result name = "error"> / error.jsp </ résultat> <résultat name = "invalid.token"> / error.jsp </sult> <result name = "ligin" type = "redirect-action"> logon! input </cult> </ global-re-ults>
Retourner dynamiquement Résultats
Parfois, nous ne savons que le résultat à retourner lorsque l'action exécute le BI complet. À l'heure actuelle, nous pouvons définir une propriété à l'intérieur de l'action, qui est utilisée pour stocker la valeur du résultat après que l'action exécute le BI complet, par exemple:
String privé NextAction; public String getNextAction () {return NextAction;} Dans le fichier de configuration de Strutx.xml, nous pouvons utiliser $ {NextAction} pour référencer les propriétés dans l'action, et renvoyer dynamiquement le résultat via le contenu représenté par $ {NextAction}, par exemple:
<action name = "fragment"> <résultat name = "next" type = "redirect-action"> $ {nextAction} </sult> </ action> Lorsque la méthode d'exécution de l'action ci-dessus revient ensuite, il est également nécessaire de déterminer quelle action est située en fonction des propriétés de NextAction.
Si vous souhaitez transmettre une autre action, vous pouvez définir Type = chaîne et le résultat ne sera pas ajouté à ShTML.
Ce qui précède est toute l'explication détaillée des paramètres de résultat Struts2. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.