2008-12-17 17 views
7

Tengo que pasar algún parámetro de una acción a otra acción, por ejemplo, para mantener el seguimiento de un evento.Parámetros de Struts2 entre las acciones

¿Cuál es la mejor manera de hacerlo?

No utilizaría los parámetros de la sesión. Gracias

Respuesta

11

Suponiendo que está en el servidor dentro de una acción y desea invocar otra acción con algunos parámetros.

Puede utilizar la s: etiqueta de acción para invocar otra acción, posiblemente con adicionales/otros parámetros 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 struts-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> 
+0

que tenía un montón de problemas calcular esto: no funciona en Struts 2.1.8.1. Después de actualizar a Struts 2.2.1 todo está bien. No he encontrado una nota sobre eso en ninguna parte. – grefab

1
<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> 
+0

lo siento ?? ¿debería responder? por favor, no busques spam buscando puntajes. – Giancarlo

1

etiqueta Uso 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> 
0

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

1

En realidad, va a pasar el valor de su parámetro de acción de una acción a otra.

simplemente incluya la variable bean con el mismo nombre. qué parámetro vas a recibir en la acción (acción del receptor).

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

El parámetro ForwardAction se reenviará a ReceiverAction. puedes usarlo. pero incluya el mismo nombre de bean en ambas acciones. ..

si van a recibir id de usuario en los medios receiveaction,

Esto debería estar en ambas acciones,

private int userid; 

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

public int getUserid(){ 
    return userid; 
} 
Cuestiones relacionadas