0

多くの行を持つテーブルがあり、各行にはstruts2-jqueryを使用したモーダルダイアログボックスへのリンクがあります。これを設定するには、ダイアログごとに一意のIDを設定する必要がありますが、運が悪かったので複数のオプションを試しました。

        <s:iterator value="myBeanList" var="rrSum" status="status">
            <tr>
                <td>
                    <s:url id="ajax%{status.index}" action="smoRiskRegister" var="ajaxURL">
                        <s:param name="requestRiskID"><s:property value="#rrSum.rid" /></s:param>
                    </s:url>

                    <sj:dialog id="dialog3" href="%{ajaxURL}" title="Testing" />
                    <sj:a openDialog="dialog3"><s:property value="#rrSum.rid" /></sj:a>

                </td>
            </tr>
        </s:iterator>

したがって、「dialog3」の代わりに、dialog%{status.index}のようなものが必要です。IDをこれに設定できます...しかし、アンカータグでIDを参照するにはどうすればよいですか?残念ながら、ダイアログのvarパラメータはありません:(

4

1 に答える 1

2

%{#status.index}アンカータグでも使用できます。

<sj:dialog id="dialog%{#status.index}" href="%{ajaxURL}" title="Testing" />
<sj:a openDialog="dialog%{#status.index}"><s:property value="#rrSum.rid" /></sj:a>

記号に注意#してください。アクセスされたオブジェクトがOGNLルートにない場合は、これを使用する必要があります。

Actionインスタンスは、常に値スタックにプッシュされます。アクションはスタック上にあり、スタックはOGNLルートであるため、アクションプロパティへの参照では#マーカーを省略できます。ただし、ActionContext内の他のオブジェクトにアクセスするには、#表記を使用する必要があります。これにより、OGNLはルートオブジェクトではなく、ActionContext内の他のオブジェクトを検索します。

Struts2のOGNLについて読む:http ://struts.apache.org/2.x/docs/ognl.html 。

于 2012-11-29T09:16:09.757 に答える