struts2は初めてで、動的セッションキーを使用してセッションオブジェクトを取得しようとしています。
私のアプリフローは次のようになります:ユーザーはブラウザからアクションをヒットします
http://localhost:8080/prjcr/pad.action?userid=p02585@test.org
アクションクラスでは、p02585 @ test.orgリクエストパラメータを使用してWebサービスから値のリストを取得し、次のようにセッションに保存します。
//get the request parameter
userid=ServletActionContext.getRequest().getParameter("userid);
QDefn[] qDefn = proxy.getQDefns(userid); //webservice call
List<QDefn> qdList = new ArrayList<QDefn>();
qdList.add(Arrays.asList(qDefn));
セッションキーとして使用するリクエストパラメータのユーザーID部分を抽出します
userid = userid.substring("UserId", userid.substring(0, userid.indexof('@'));
//The key itself is what we receive in the request parameter
ActionContext.getContext().getSession().put("UserId", userid);
次に、関連する値のリストをセッションにプッシュします
ActionContext.getContext().getSession().put(userid, qdList);
次のように、このリストを選択ドロップダウンに表示するJSPに転送します。
<s:select name="qdefn"
id="qdefn"
list="#session.%{#session.UserId}" ---What is the notation here??
listKey="defnName"
listValue="defnName"
headerKey="ALLQD"
headerValue="All" > </s:select>
ユーザーIDである動的セッションキーを使用して、jspのセッションからqdListをプルしようとしました。Javaでは、session.get(userid)として実行します。私はまだOGNL表記に同意することができません。だから、Struts2/OGNLでそれを行う方法がわかりません。
前もって感謝します