2012-03-06 65 views
10

Soy nuevo en Java EE y Struts2. Necesito saber si lo estoy haciendo mal o no.Cómo acceder a los parámetros de url en las clases de acción Struts 2

Tengo un enlace como este: http://localhost:8080/myProject/deleteUser?idUser=42

Todo lo que quiero es obtener el valor idUser.

Esto es lo que yo uso para obtener el valor del parámetro en mi clase de acción:

HttpServletRequest request = (HttpServletRequest) ActionContext.getContext() 
            .get(ServletActionContext.HTTP_REQUEST); 
System.out.println(request.getParameter("idUser")); 

Respuesta

27

S2 proporciona una manera limpia de obtener los parámetros de solicitud en su clase de acción todo lo que necesita para seguir estas sencillas reglas.

  1. Cree una propiedad con el mismo nombre que el nombre del parámetro de solicitud.
  2. crear getter y setters para esta propiedad o hacer de la propiedad pública (por S2.1 +)

S2 se compruebe la solicitud de parámetro y va a buscar a juego propiedad en su clase de la acción e inyectará el valor respetado propiedad.

en su caso todo lo que necesita hacer

public class MyAction extends ActionSupport{ 

private String idUser; 
getter and setters 

} 

Así que en este caso S2 se encuentra la propiedad idUser en su clase de la acción y su acumulación en el interceptor inyectará el valor de la propiedad idUser

+0

¡Perfecto! Muchas gracias. – SupaCoco

12

Bueno, yo no soy un experto en Struts, pero lo que hago en mis Struts 2.2 del proyecto (y funciona bien) es:

String paramValue = ServletActionContext.getRequest().getParameter("paramName"); 

Aquí paramName sería "idUser".

+0

Gracias funciona muy bien. Pero usaré la forma @Umesh. – SupaCoco

+0

Sí, así es, funciona. – sudoz

0
public class MyAction extends ActionSupport { 
    HttpServletRequest request; 
    String idUser = request.getParameter("idUser"); 
    System.out.println(idUser); 

} 

¡Prueba esto!

2

Prueba esto:

ActionContext context = ActionContext.getContext(); 
Map<String, Object> params = context.getParameters(); 
String userId = findParam("idUser", params); 

public String findParam(String key, Map<String, Object> params) { 
    Object obj = params.get(key); 
    if(obj != null) { 
    String[] values = (String[])obj; 
    return values.length > 0 ? values[0] : null; 
    } 
    return null; 
} 
Cuestiones relacionadas