如何在struts 2中将迭代器索引值传递给Javascript?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在struts 2中将迭代器索引值传递给Javascript?相关的知识,希望对你有一定的参考价值。
我在Struts 2中有一个动态表。我想在其中将迭代器索引值传递给javascript函数。我怎样才能做到这一点?我已经给出了下面的代码。
这是我的表:
<table class="tblborder" id="priorIncident">
<thead>
<tr bgcolor="gray">
<th colspan="5" align="center"><s:text name="priorIncidentTab" /></th>
</tr>
<tr bgcolor="black">
<th><s:text name="date" /></th>
<th><s:text name="reason" /></th>
<th><s:text name="warningInd" /></th>
<th><s:text name="warningDate" /></th>
<th><s:text name="warningDesc" /></th>
</tr>
</thead>
<tbody>
<s:iterator value="claimData.priorIncidents" var="priorIncident" status="status">
<tr>
<s:hidden name="claimData.priorIncidents[%{#status.index}].oid" />
<td><s:textfield theme="simple" name="claimData.priorIncidents[%{#status.index}].incidentDate" id="incidentDate1"/></td>
<td><s:textfield theme="simple" name="claimData.priorIncidents[%{#status.index}].incidentReason" id="incidentReason1"/></td>
<td>
<s:select headerKey="" headerValue="Select" list="#{'Y':'Yes', 'N':'No'}" theme="simple" name="claimData.priorIncidents[%{#status.index}].hasWarning" id="hasWarning1"/>
</td>
<td><s:textfield theme="simple" name="claimData.priorIncidents[%{#status.index}].warningDate" id="warningDate1"/></td>
<td><s:textfield theme="simple" name="claimData.priorIncidents[%{#status.index}].warningDesc" id="warningDesc1"/></td>
</tr>
</s:iterator>
</tbody>
</table>
<td><a href="#" id="add" onclick="MyFunction(%{#status.index})">Add</a></td>
<td><a href="#" id="delete">Delete</a></td>
当我单击添加链接(不在迭代器内)时,我应该能够将索引值传递给某个Javascript函数吗?由于我是JS新手,有人可以提供帮助吗?任何答案都非常感谢?
缺少单引号.......这必须有效
<a href="#" id="add" onclick="MyFunction('%{#status.index}')">Add</a></td>
如果不尝试下面的东西
<a href="#" id="add" onclick="MyFunction('<s:property value="%{[#stat.index]}"/>')"> Add</a></td>
状态的范围在迭代器内。使用标准c标记库将status.index的值设置为页面范围变量。
<c:set var="foo" scope="page" value="..."/>
顺便说一下,status.index的最后一个值总是数组-1的大小。
目前还不清楚你究竟要求的是什么。
您可以在渲染时使用列表的大小初始化JS变量。 MyFunction
需要递增该值,以便您可以添加行;硬编码函数调用中的值将不起作用。
这意味着对方法调用中的值进行硬编码将不起作用:您需要使用JS变量。
如果你的目标是在循环结束时开始计数一个“添加”链接,你也可以在迭代器块中使用<s:set>
增加一个计数器,或者在最后一次迭代时设置一个变量。
最后,由于您需要在添加更多项目时不断更新值,因此,仅使用列表大小设置JS变量似乎是最佳选择。如果要为每个项目添加“添加”链接,则可以使用迭代块内的索引。
以上是关于如何在struts 2中将迭代器索引值传递给Javascript?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OpenGL ES 2.0 中将视图/模型/投影矩阵传递给我的顶点着色器?
如何将 Struts 2 动作类中的 InputStream 值传递给 JSP 页面中的 Ajax 并将该值转换为 JSON 数组
如何在角度 2 中将输入值转换为大写(传递给 ngControl 的值)
如何在使用固定结构时在 ngFor 中将索引值增加和更新 2
用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,