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