struts2-jquery迭代器中对话框的唯一ID

时间:2012-11-29 08:29:18

标签: java jquery struts2 struts2-jquery

我有一个包含许多行的表,每行都有一个使用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”,而是想要对话框%{status.index}。我可以将ID设置为...但是如何在锚标记中引用它?不幸的是,对话框没有var参数:(

1 个答案:

答案 0 :(得分: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属性的引用可以省略#marker。但是,要访问ActionContext中的其他对象,我们必须使用#符号,以便OGNL知道不要查看根对象,而是查看ActionContext中的其他对象。

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