2009-03-23 15 views
0

J'ai un problème pour invoquer des actions de mes pages jsp avec une balise dans struts2. Je le fichier login.jsp:La balise d'action n'est pas exécutée dans Struts 2

<s:action name="headerMenu" executeResult="true" namespace="/menu"</s:action> 
<s:form action="executeLogin"> 
    <s:textfield name="username" label="Username"></s:textfield> 
    <s:password name="password" label="Password"></s:password> 
    <s:submit></s:submit> 
</s:form> 

L'action headerMenu rend le résultat dans header.jsp:

<div id="menu"> 
    <s:iterator value="menus"> 
     <s:property escape="false" value="'<a href=\"'+path+'\" title=\"'+description+'\">'+title+'</a>'"/> 
    </s:iterator> 
</div> 

Ce fichier jsp rend un menu qui vient d'un (menus nommé) LinkedList dans le Classe d'action de l'action headerMenu.

Lors de l'accès à "login.action", le menu est rendu très bien, mais si j'entre les données dans le formulaire, le soumettre le formulaire, et la soumission a des erreurs de validation, je retourne à la page, le formulaire est rendu ok , mais le menu est manquant. J'ai toujours "..." dans la page, mais pas de menu ... C'est comme si l'action qui donne le menu est invoquée mais la méthode execute() n'exécute pas ...

Quelqu'un peut m'aider s'il vous plaît avec ça?

Vasi.

Répondre

0

Je serais à la recherche afin de déterminer si la cause pourrait être liée aux 2 extraits de la documentation de tag struts2 suivants:

« Tout processeur de résultat défini pour cette action en struts.xml seront ignorés, à moins que le ExecuteResult paramètre est spécifié. "

« L'action ne sera pas publiée au contexte jusqu'à ce que l'étiquette entière est évaluée, ce qui signifie que l'intérieur du corps de l'étiquette, l'action ne peut pas être accessible »

3

S'il vous plaît prêter attention à la 1ère ligne. La balise s: action n'est pas fermée correctement. Il devrait être comme suit:

<s:action name="headerMenu" executeResult="true" namespace="/menu"></s:action>