3

インデックスが変数の場合、リストの特定の要素にアクセスするのに問題があります。

インデックスが単なる数字の場合、探しているものを表示するのにまったく問題はありません。

<s:property value="#session.userList[1].email" />

それは完全に機能し、UserList のその要素で見つかった電子メールを表示します

ただし、インデックスを変数に変更すると、ognl ステートメントを適切に記述する方法を見つけるのが難しくなります。考えられる %# のすべての組み合わせを試しましたが、うまくいきませんでした。

<s:set var="userIndex" >${param.index}</s:set>
<s:property value="#session.userList[#userIndex].email" />

ognl ステートメントをどのように正確にフォーマットする必要がありますか?

4

2 に答える 2

5

次の例のようにフォーマットする必要があります。

<s:set var="userIndex" value="%{@java.lang.Integer@valueOf(#parameters.index)}" />
<s:property value="%{#session.userList[#userIndex].email}" />

struts タグを使用している場合は、式の評価に EL ではなく OGNL を使用することをお勧めします。OGNL が式の一部ではなく全体を評価するように強制します。

変数の値を整数型に変換する必要があります。名前に使用される文字列型。

于 2013-04-08T16:02:50.847 に答える