>我有一个包含许多行的表,每行都有一个指向使用 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 参数:(
锚标记中使用%{#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 根中时,必须使用它。
操作实例始终推送到值堆栈上。由于操作位于堆栈上,并且堆栈是 OGNL 根,因此对操作属性的引用可以省略 # 标记。但是,要访问 ActionContext 中的其他对象,我们必须使用 # 表示法,以便 OGNL 知道不查找根对象,而是查找 ActionContext 中的其他对象。
在 Struts2: http://struts.apache.org/2.x/docs/ognl.html 中阅读有关 OGNL 的信息。