2016-07-14 2 views
3

J'ai cherché web pendant des heures, et je ne trouve pas de réponse à une question simple dans Struts 2. Fondamentalement, j'ai l'action suivante dans Struts 1 qui est un simple forward, et je veux reproduire la même chose dans Struts 2:Comment faire une redirection simple dans Struts 2?

<action path="/az/api/v22/my-tenants" forward="/components/c/apis/v22/my-tenants.jsp"> 
     </action> 

Je pourrais écrire une classe d'action pour ce faire, mais je pense que Struts2 doit avoir une certaine façon de le faire sans avoir à écrire une classe d'action, car il est une simple redirection.

+0

Que voulez-vous réaliser avec cela? –

Répondre

2

Créer résultat dans sans action du struts.xml

struts.xml:

<package name="v22" namespace="/az/api/v22" extends="struts-default"> 
    <action name="my-tenants"> 
     <result>/components/c/apis/v22/my-tenants.jsp</result> 
    </action> 
</package> 

Cette configuration définit un package avec espace de noms et le nom /az/api/v22 l'action my-tenants. Donc, si vous utilisez le chemin /az/api/v22/my-tenants, il sera mappé à la configuration de l'action ci-dessus, car le mappeur d'actions par défaut utilise l'espace de noms et le nom de l'action ensemble pour obtenir l'action config.

Il n'y a pas d'attribut class dans la balise d'action et elle utilise la classe ActionSupport à la place. Cette classe est configurée par défaut dans le package struts-default.

Dans le résultat, il suffit de définir l'emplacement de la JSP, car par défaut Struts2 utilisent un répartiteur qui transmet à JSP, et il utilise "success" code de résultat par défaut dans la configuration du résultat qui est retourné par défaut par ActionSupport classe.

+0

Cela peut être fait sans utiliser l'attribut namespace du paquet. Le problème est qu'un paquet dans Struts2 a déjà été créé pour que ces appels en fassent partie. Donc, je n'ai pas de contrôle sur l'espace de noms du paquet. –

+0

Sans l'attribut namespace, il vous manque une partie devant être ajoutée avant le nom de l'action. –