我有一个记录(交易)列表,我需要将这些记录显示在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:复选框和集合等的示例。
答案 0 :(得分:0)
我认为s:checkboxlist对你的情况很有用。 您可以按如下方式使用它:
<s:checkboxlist list="tradesList" name="tradesListSelectedItems"
listKey="%{tradeId}" listValue="%{youTradeLibelle}">
</s:checkboxlist>
并在您的操作类中添加一个名为tradesListSelectedItems的String属性,该属性将存储您的交易的已检查值。 例如,如果选中“trade1”和“trade2”选项,则选中的值将与逗号结合, tradesListSelectedItems =“trade1ID,trade2ID”。