使用Struts2标记选择表行

时间:2012-02-02 01:45:42

标签: jsp html-table struts2

我是Struts 2的新手,请帮我解决以下问题

我在Jsp中使用struts2标签有一个表,我想做的就是在动作类中检索所选(已检查)表行的值。

请告诉我如何实现它。


以下是所要求的代码

<s:iterator value="listOfDtos" status="stat">
<tr>
<td><s:checkbox name="delete" value="select" /></td>
<td><s:property value="FirstName"/></td>
<td><s:property value="LastName"/></td>
</tr>
</s:iterator>
<s:submit id="delete" value="delete"/>

listOfDtos”是dto的数组列表,并在下面的操作中设置

ActionContext.getContext().getValueStack().set("listOfDtos", listOfDtos);

现在,当用户选择要删除的任何行时,我希望能够首先在Action中检索此dtos列表并迭代它们以检查dtos中哪个属性具有“{{1 “设置为true。

select”是dto中String类型的属性。

如何做到这一点?还将如何在“行动”中提供“select”。

2 个答案:

答案 0 :(得分:0)

你可以使用它....

<s:iterator var="something" id="something"  value="something" status="ListStatus">
            <s:if test="#ListStatus.index == 0">
                <tr  style="border: 1px solid black;" bgcolor="lightgray" height="20">
                    <td  align="center" style="border: 1px solid black;"><s:checkbox id ="itemToDelete1" name="checkAll" onchange=" check(main_form.fileNames,this.checked)"/></td>
                    <td  align="center" style="border: 1px solid black;"><strong>INSTANCE ID</strong></td>
                    <td  align="center" style="border: 1px solid black;"><strong>FILE NAME</strong></td>
                    <td  align="center" style="border: 1px solid black;"><strong>SUB DT</strong></td>
                    <td  align="center" style="border: 1px solid black;"><strong>PROCESS STATUS</strong></td>
                </tr>
            </s:if>
            <tr style="border: 1px solid black;"> 
                <td  align="center" style="border: 1px solid black;"><s:checkbox id ="itemToDelete" name="fileNames" fieldValue="%{#fileDetails.fileName}"/></td>
                <td style="border: 1px solid black;"><s:property value="#fileDetails.fileInstId"/></td>
                <td style="border: 1px solid black;"><s:property value="#fileDetails.fileName"/></td>
                <td style="border: 1px solid black;"><s:property value="#fileDetails.dataOfSubmission"/></td>
                <td style="border: 1px solid black;"><s:property value="#fileDetails.fileProcessStatus"/></td>
            </tr>
        </s:iterator>

我已经使用过它并且工作得很好.... 如您所见,如果选中标题复选框,则会选中所有复选框。
现在这是你的动作类fileDetails.fileName中需要的字段 我希望你能得到一些帮助......

答案 1 :(得分:-1)

您正在执行的功能是在选中行的复选框时删除特定行吗?

您可以尝试在行上放置一个href,其变量引用某行中的数据。

E.g。

<a href="deleteuser.action?id=<s:property value="id"/>&action=delete"/>delete </a>

这是我正在使用的代码。