web-dev-qa-db-fra.com

Comment accéder aux paramètres d'URL dans les classes d'actions Struts 2

Je suis nouveau à Java EE et Struts2. J'ai besoin de savoir si je le fais mal ou non.

J'ai un lien comme celui-ci: http: // localhost: 8080/myProject/deleteUser? IdUser = 42

Tout ce que je veux, c'est obtenir la valeur idUser.

Voici ce que j'utilise pour obtenir la valeur du paramètre dans ma classe d'action:

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

S2 fournit un moyen propre de récupérer les paramètres de demande dans votre classe d'action tout ce dont vous avez besoin pour suivre ces règles simples.

  1. Créez une propriété portant le même nom que le nom du paramètre de demande.
  2. créer un getter et des setters pour cette propriété ou rendre la propriété publique (pour S2.1 +)

S2 vérifiera le paramètre de demande et recherchera la propriété correspondante dans votre classe d'action et injectera la valeur dans la propriété respectée.

dans votre cas, tout ce que vous devez faire

public class MyAction extends ActionSupport{

 private String idUser;
 getter and setters   

}

Donc, dans ce cas, S2 trouvera la propriété idUser dans votre classe d'action et son build in interceptor injectera la valeur dans la propriété idUser

33
Umesh Awasthi

Eh bien, je ne suis pas un expert Struts, mais ce que je fais dans mon projet Struts 2.2 (et ça marche bien) est:

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

Ici, paramName serait "idUser".

15
Shivan Dragon

Essaye ça:

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;
}
2
Ahmad AlMughrabi
public class MyAction extends ActionSupport {
    HttpServletRequest request;
    String idUser = request.getParameter("idUser");
    System.out.println(idUser);

}

Essaye ça!

1
HashimR