Pregunta

tengo que pasar algún parámetro de una acción a otra acción, por ejemplo para mantener rastro de un evento.

¿Cuál es la mejor manera de hacerlo?

Yo no usaría los parámetros de sesión. Gracias

¿Fue útil?

Solución

Suponiendo que usted es serverside el plazo de una acción y que desee recurrir a otra acción con algunos parámetros.

Puede utilizar los s: Etiqueta de acción a invocar otra acción, posiblemente con otros parámetros adicionales / que la acción original:

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

También puede utilizar un puntales-xml tipo de resultado estándar con un parámetro:

<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 quieres un lado del cliente redirigir usted tiene que enviar una url de vuelta al cliente con los parámetros adecuados, y tal vez usar un poco de javascript para ir allí.

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

Otros consejos

Utilice la etiqueta del URL en las etiquetas de los puntales básicos, la muestra se da a continuación:

                <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 realidad se va a pasar su valor de un parámetro de acción de una acción a otra acción.

basta con incluir la variable de frijol con el mismo nombre. el parámetro que va a recibir en la acción (la acción del receptor).

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

parámetro ForwardAction será remitida a ReceiverAction. puedes usarlo. sino que incluyen frijol mismo nombre en ambas acciones.

Si va a recibir id de usuario en los medios receiveaction.,

Esto debe ser en ambas acciones.

private int userid;

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

public int getUserid(){
     return userid;
}

En realidad, el alcance y ServletConfig interceptor puede ser utilizado en struts2, al pop automática los parámetros de contexto de acción, (petición / sesión, etc)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top