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 设置为此...但是如何在锚标记中引用它?不幸的是,对话框没有 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 实例总是被压入值栈。因为 Action 在堆栈上,并且堆栈是 OGNL 根,所以对 Action 属性的引用可以省略 # 标记。但是,要访问 ActionContext 中的其他对象,我们必须使用 # 符号,以便 OGNL 知道不查看根对象,而是查看 ActionContext 中的其他对象。

阅读 Struts2 中的 OGNL:http: //struts.apache.org/2.x/docs/ognl.html

于 2012-11-29T09:16:09.757 回答