web-dev-qa-db-ja.com

アクションクラスStruts 2でURLパラメーターにアクセスする方法

Java= EEとStruts2は初めてです。私が間違っているかどうかを知る必要があります。

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

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

これが、アクションクラスのパラメーター値を取得するために使用するものです。

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

S2は、これらの単純なルールに従うために必要なすべてのアクションクラスの要求パラメーターをフェッチするためのクリーンな方法を提供します。

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

S2はリクエストパラメータをチェックし、アクションクラス内で一致するプロパティを探し、そのプロパティに値を挿入します。

あなたの場合、あなたがする必要があるすべて

public class MyAction extends ActionSupport{

 private String idUser;
 getter and setters   

}

したがって、この場合、S2はアクションクラスでidUserプロパティを検出し、その組み込みインターセプターはidUserプロパティに値を挿入します

33
Umesh Awasthi

ええと、私はStrutsのエキスパートではありませんが、私のStruts 2.2プロジェクトで行うこと(そしてそれは問題なく動作します)は次のとおりです。

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

ここでparamNameは「idUser」になります。

15
Shivan Dragon

これを試して:

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

}

これを試して!

1
HashimR