1
複数の表の列にArrayListを設定しようとしていますが、これはもともと古いページのスクリプトレットを使用して行っていました。そして、strutsタグを使用して翻訳するのに問題があります。<s:iterator>を使用して複数の列に動的arraylistを設定する
私はこれは、元のスクリプトレットのコードである
Checkbox 1 Name 1 Checkbox 2 Name 2
Checkbox 3 Name 3 Checkbox 4 Name 4
etc....
、テーブルはこのように終わるしたい:
<% for (int j=0; j < getDocumentList().length; j++) {
setPacket(j);
setStringIndex(Integer.toString(j));
%>
<tr>
<td><input type="checkbox" name="displayTag<%= getStringIndex() %>"/></td>
<td class="labelText"><%= getFormName() %></td>
<%
j++;
if (j < getDocumentList().length) {
setPacket(j);
setStringIndex(Integer.toString(j));
%>
<td><input type="checkbox" name="displayTag<%= getStringIndex() %>"/></td>
<td class="labelText"><%= getFormName() %></td>
<% } %>
</tr>
<% } %>
編集:ここでの最終的な形で動作するコードです!
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="maintain_test_info_table_subholder width5per"><fmt:message key="column.select"/></td>
<td class="maintain_test_info_table_subholder width40per"><fmt:message key="column.docname"/></td>
<td class="maintain_test_info_table_subholder width5per"><fmt:message key="column.select"/></td>
<td class="maintain_test_info_table_subholder width40per"><fmt:message key="column.docname"/></td>
</tr>
<s:iterator value="documentsList" var="documentList" status="status">
<s:if test="#status.index == 0">
<s:set var="docIndex" value="%{#status.index}" />
</s:if>
<s:else>
<s:set var="docIndex" value="%{#docIndex+1}" />
</s:else>
<c:set var="rowClass" value="row_even"/>
<s:if test="#status.odd == true">
<c:set var="rowClass" value="row_odd"/>
</s:if>
<s:if test="%{#documentListSize > #docIndex}">
<tr class="${rowClass}">
<s:hidden name="%{'documentsList['+#docIndex+'].documentId'}" />
<s:hidden name="%{'documentsList['+#docIndex+'].documentName'}" />
<s:hidden name="%{'documentsList['+#docIndex+'].documentSelected'}" />
<td class="tablecell_middle width5per" >
<input type='checkbox' id='displayTag_${docIndex}' value="${documentsList[docIndex].documentSelected}"/>
</td>
<td class="tablecell_middle width40per" id='documentName_${docIndex}'>
<c:out value="${documentsList[docIndex].documentName}"/>
</td>
<s:set var="docIndex" value="%{#docIndex+1}" />
<s:if test="%{#documentListSize > #docIndex}">
<s:hidden name="%{'documentsList['+#docIndex+'].documentId'}" />
<s:hidden name="%{'documentsList['+#docIndex+'].documentName'}" />
<s:hidden name="%{'documentsList['+#docIndex+'].documentSelected'}" />
<td class="tablecell_middle width5per" >
<input type='checkbox' id='displayTag_${docIndex}' value="${documentsList[docIndex].documentSelected}"/>
</td>
<td class="tablecell_middle width40per" id='documentName_${docIndex}'>
<c:out value="${documentsList[docIndex].documentName}"/>
</td>
</s:if>
</tr>
</s:if>
</s:iterator>
</table>
のようなインデックスのためのあなたのovn変数を設定する必要があります。イテレータの最初または最後に設定する必要がありますか?そして第二に、私はのステートメントでそれをどのように使用しますか?それはdocumentListのようなものでしょうか?[stringIndex] documentName – JRHigdon
これまでのコードでは、あなたはそれを何回か設定します。イテレータの本体の内側にある必要があります。 –
私は自分のコードを編集して、今どこにいるのかを示しています。問題は、outステートメントにインデックスを追加してページに印刷しようとすると、空白になることです。私が隠しタグでそれを宣言する方法にそれをミラーリングしようとすると、コアタグはそれを好まない。コア出力タグの代わりに使用できるstrutsaタグはありますか? – JRHigdon