Struts2使用带有c:forEach的s:checkbox,选择用于选择性交易数据记录的记录



我有一个记录(交易)列表,我需要将其作为交易POJO的表格数据显示在JSP页面上,并且需要将其中一些记录的复选框选择作为表单POST返回到操作,我需要检查选择了哪些记录。我正在使用c:forEach进行表格数据显示。JSP为:

<s:form id="executeTradesForm" name="executeTradesForm" action="ExeTradeAction">
    <table id="tradesForDisplayTable" border="1" align="left" width="100%"> 
            <tr>
                <s:checkbox name="selAllTradeIds" fieldValue="selAllTradeIds"/>
                <th>Trade ID</th>
                <th>Trade Source</th>
                <th>Currency</th>
                <th>Trade Status</th>
                <th>Trade Date</th>
                <th>Start Date</th>
                <th>Maturity Date</th>
                <th>Trader Name</th>
                <th>Trade Quantity</th>
                <th>Trade Price</th>
                <th>Buy / Sell</th>
            </tr>
            <c:forEach var="trade" items="${tradesList}" varStatus="stat">
            <tr>
                <td><s:checkbox name="selTradeId" fieldValue="selTradeId"/></td>
                <td><c:out value="${trade.tradeId}" /></td>
                <td><c:out value="${trade.tradeSource}" /></td>
                <td><c:out value="${trade.currency}" /></td>
                <td><c:out value="${trade.tradeStatus}" /></td>
                <td><c:out value="${trade.tradeDate}" /></td>
                <td><c:out value="${trade.startDate}" /></td>
                <td><c:out value="${trade.maturityDate}" /></td>
                <td><c:out value="${trade.traderName}" /></td>
                <td><c:out value="${trade.tradeQuantity}" /></td>
                <td><c:out value="${trade.tradePrice.value}" /></td>
                <td><c:out value="${trade.buySell}" /></td>
            </tr>
            </c:forEach>
            <s:submit align="left" name="submit" value="Execute Trades" />

在使用s:checkbox或类似s:checkboxlist的其他方法方面,这里的最佳方法是什么。

我需要知道当使用s:checkbox时,我们是否可以将fieldValue属性作为动态属性,如"checkbox-"(tradeId是唯一的,来自trade.tradeId。如何获取该动态属性?

假设tradeId是一个类似TRD12345的字符串值,Action类将其存储为什么?字符串[]还是布尔数组?(当我们使用s:复选框时)

Struts2文档是需要的,并且没有给出足够的将s:checkbox用于集合等的示例。

我认为s:checkboxlist在您的情况下很有用。你可以按如下方式使用它:

    <s:checkboxlist list="tradesList" name="tradesListSelectedItems"
 listKey="%{tradeId}" listValue="%{youTradeLibelle}">
    </s:checkboxlist>

并在您的操作类中添加一个名为tradesListSelectedItems的String属性,该属性将存储您的交易的检查值。例如,如果选中了"trade1"one_answers"trade2"选项,则选中的值将与逗号组合,tradeListSelectedItems="trade1ID,trade2ID"。

最新更新