我有一个包含许多行的表,每行都有一个使用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参数:(
答案 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。