Struts2使用s:复选框和c:forEach选择交易数据记录

时间:2012-03-12 15:30:36

标签: struts2

我有一个记录(交易)列表,我需要将这些记录显示在JSP页面上,作为来自Trade POJO的表格数据,并且需要获取其中一些记录的复选框选项作为Form 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:复选框或其他类似 s:checkboxlist 的最佳方法是什么?

我需要知道,当使用 s:复选框时,我们是否可以将 fieldValue 属性视为动态内容,例如'复选框 - '(tradeId正在使用独特的,来自trade.tradeId。如何获得动态属性?

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

Struts2文档非常缺乏,并没有提供足够的使用s:复选框和集合等的示例。

1 个答案:

答案 0 :(得分:0)

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

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

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