2012-03-06 8 views
10

Java EEとStruts2の新機能です。私はそれが間違っているかどうかを知る必要があります。ActionクラスのURLパラメータにアクセスする方法Struts 2

は、私はこのようなリンクを持っている:http://localhost:8080/myProject/deleteUser?idUser=42

私が欲しいのはidUser値を取得することです。

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

答えて

27

S2は、これらの単純なルールに従う必要があるすべてのアクションクラスでリクエストパラメータを取得するクリーンな方法を提供します。

  1. リクエストパラメータ名と同じ名前のプロパティを作成します。
  2. は、このプロパティのゲッターとセッターを作成したり(S2.1 +用)パブリックプロパティを作る

S2は、リクエストパラメータをチェックし、あなたのアクションクラスにプロパティを一致させるためになりますし、尊敬に値を挿入しますプロパティ。あなたの場合、あなたがそのため、この場合にはS2がidUserプロパティに値を挿入しますあなたのアクションクラスとインターセプタでのビルドでidUserプロパティを見つけます

public class MyAction extends ActionSupport{ 

private String idUser; 
getter and setters 

} 

を行うために必要なすべてで

+0

完璧!どうもありがとう。 – SupaCoco

12

まあ、私はStrutsの専門家ではないんだけど、私は私のStruts 2.2のプロジェクトで何をすべきか(そしてそれがOKに動作します:ここで

は、私は私のアクションクラスでパラメータ値を取得するために使用するものです)は:

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

ここでparamNameは "idUser"です。

+0

が、それは素晴らしい作品ありがとうございます。しかし、私は@Umesh方法を使用します。 – SupaCoco

+0

ええ、そうです、それは動作します。 – sudoz

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

} 

試してみてください!

2

これを試してみてください:

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