gpt4 book ai didi

java - 我如何以 struts 迭代器生成的单个表单调用多个操作

转载 作者:行者123 更新时间:2023-12-01 14:43:08 24 4
gpt4 key购买 nike

我有一个票证对象列表,我使用 strut 标签在 jsp 中显示这些对象。该列表工作正常,行渲染正确。我需要做的是为每行提供两个功能 - 详细信息更新

我的 JSP 的一部分...

<script type="text/javascript">

function details()
{
document.forms['ticketForm'].action="viewTicket.do";
document.forms['ticketForm'].submit();
}

</script>

<s:iterator value="ticketList" var="tl">
<tr>
<!-- The problem form which should call 2 actions -->
<s:form id="ticketForm" action="updateTicket" theme="simple">
<!-- This hidden field is required in both actions -->
<s:hidden name="ticketId" value="%{#tl.id}" />
<td valign="top" width="5%"><s:property value="id" /></td>
<td valign="top"><s:property value="requesterName" /></td>
<td valign="top"><s:property value="guestName" /></td>
<input type="button" value="Details" onClick="Javascript:details()" />
<s:submit value="Update" />
</td>
</s:form>
</tr>

<tr>
<td colspan="10"><script language="JavaScript">Rule();</script></td>
</tr>
</s:iterator>

现在的问题是:1) UpdateTicket 操作工作正常,但 viewTicket 操作(通过 javascript 呈现的操作)工作正常。无论我点击哪一行,它总是调用第 2 行中的票证详细信息。如果我使用 s:submit 而不是第二个操作,则表单的默认操作(即 updateTicket)始终被调用。我该如何解决这个问题。

2) 第 1 行中的更新票证永远不会起作用。它总是重新加载同一页面并执行一些奇怪的操作。但是,更新票证操作在所有其他行中都运行良好。

最佳答案

尝试为每个表单分配不同的 ID,然后运行应用程序。在 JSP 和 Javascript 上也对代码进行以下更改

JSP 更改

 <s:iterator value="ticketList" var="tl" status="stat">
<tr>
<!-- The problem form which should call 2 actions -->
<s:form id="ticketForm%{#stat.index}" action="updateTicket" theme="simple">
<!-- This hidden field is required in both actions -->
<s:hidden name="ticketId" value="%{#tl.id}" />
<td valign="top" width="5%"><s:property value="id" /></td>
<td valign="top"><s:property value="requesterName" /></td>
<td valign="top"><s:property value="guestName" /></td>
<input type="button" value="Details" onClick="Javascript:details(<s:property value='%{#stat.index}' />)" />
<s:submit value="Update" />
</td>
</s:form>
</tr>

<tr>
<td colspan="10"><script language="JavaScript">Rule();</script></td>
</tr>
</s:iterator>

Javascript 更改

function details(index)
{
document.forms['ticketForm'+index].action="viewTicket.do";
document.forms['ticketForm'+index].submit();
}

希望这有帮助:)

关于java - 我如何以 struts 迭代器生成的单个表单调用多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com