Question

Je dois passer un paramètre d'une action à une autre action, par exemple pour garder la trace d'un événement.

Quelle est la meilleure façon de le faire?

Je ne voudrais pas utiliser les paramètres de session. Merci

Était-ce utile?

La solution

En supposant que vous êtes Serverside dans l'action et qui souhaite invoquer une autre action avec certains paramètres.

Vous pouvez utiliser les s: tag d'action pour appeler une autre action, éventuellement avec des paramètres supplémentaires / autres que l'action initiale:

    <s:action name="myAction"  ignoreContextParams="true" executeResult="true">
        <s:param name="foo" value="bar"/>
    </s:action>

Vous pouvez également utiliser un type de résultat standard struts-xml avec un paramètre:

<result name="success" type="redirect" >
      <param name="location">foo.jsp?foo=${bar}</param>
      <param name="parse">true</param>
      <param name="encode">true</param>
 </result>

Si vous voulez un côté client vous rediriger devez envoyer une URL au client avec les paramètres appropriés, et peut-être utiliser un javascript pour aller là-bas.

        <s:url action="myAction" >
            <s:param name="foo" value="bar"/>
        </s:url>

Autres conseils

Utilisation balise URL dans les entretoises des étiquettes de base, l'échantillon est donnée ci-dessous:

                <s:url var="idurl" action="EditEnterprise">
                    <s:param name="enterpriseId">
                        <s:property value="enterpriseId" />
                    </s:param>
                </s:url> 
<td>
   <s:url id="url" action="Logging">
      <s:param name="m_userNameInAction"><s:property value="m_userNameInForm"/></s:param>
    </s:url>
    <s:a href="%{url}">English</s:a>
</td>

En fait, vous allez passer votre une valeur de paramètre d'action d'une action à une autre action.

il suffit d'inclure la variable de haricots avec le même nom. qui paramètre que vous allez recevoir sur l'action (l'action du récepteur).

<action name="ForwardAction" class="...">
       <result name="success" type="chain">ReceiverAction</result>
</action>

paramètre ForwardAction sera transmis à ReceiverAction. tu peux l'utiliser. mais incluent même nom de haricot dans les deux actions.

si vous allez recevoir userid dans des moyens de receiveaction.

Cela devrait être dans les deux actions.

private int userid;

public void setUserid(int id){
     this.userid = userid;
}

public int getUserid(){
     return userid;
}

En fait, la portée et intercepteur ServletConfig peut être utilisé dans struts2, à vidage automatique des paramètres de contexte d'action, (demande / session, etc.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top