2012-03-06 15 views
10

Sono nuovo su Java EE e Struts2. Devo sapere se sto sbagliando o no.Come accedere ai parametri url nelle classi Action Struts 2

Ho un link come questo: http://localhost:8080/myProject/deleteUser?idUser=42

Tutto quello che voglio è quello di ottenere il valore idUser.

Ecco quello che uso per ottenere il valore del parametro nella mia classe di azione:

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

risposta

27

S2 fornisce un modo pulito per recuperare i parametri di richiesta nella classe di azione tutto ciò che è necessario seguire queste semplici regole.

  1. Creare una proprietà con lo stesso nome del nome del parametro di richiesta.
  2. creare getter e setter per la proprietà o rendere proprietà pubblica (per S2.1 +)

S2 controllerà il parametro di richiesta e cercherà per la corrispondenza proprietà nella classe azione e inietterà il valore rispettato proprietà.

nel vostro caso tutto quello che dovete fare

public class MyAction extends ActionSupport{ 

private String idUser; 
getter and setters 

} 

Quindi in questo caso S2 troverà la proprietà idUser nella classe azione e la sua configurazione in intercettore inietterà il valore nella proprietà idUser

+0

Perfetto! Molte grazie. – SupaCoco

12

Beh, io non sono un esperto di Struts, ma quello che faccio nei miei Struts 2.2 del progetto (e funziona bene) è:

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

Qui paramName sarebbe "idUser".

+0

Grazie funziona benissimo. Ma userò la modalità @Umesh. – SupaCoco

+0

Sì, è vero, funziona. – sudoz

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

} 

Prova questo!

2

Prova questo:

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; 
} 
Problemi correlati