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"));
S2は、これらの単純なルールに従うために必要なすべてのアクションクラスの要求パラメーターをフェッチするためのクリーンな方法を提供します。
S2はリクエストパラメータをチェックし、アクションクラス内で一致するプロパティを探し、そのプロパティに値を挿入します。
あなたの場合、あなたがする必要があるすべて
public class MyAction extends ActionSupport{
private String idUser;
getter and setters
}
したがって、この場合、S2はアクションクラスでidUser
プロパティを検出し、その組み込みインターセプターはidUser
プロパティに値を挿入します
ええと、私はStrutsのエキスパートではありませんが、私のStruts 2.2プロジェクトで行うこと(そしてそれは問題なく動作します)は次のとおりです。
String paramValue = ServletActionContext.getRequest().getParameter("paramName");
ここでparamNameは「idUser」になります。
これを試して:
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);
}
これを試して!