2017-01-31 2 views
1

여러 테이블 열에 ArrayList를 채우려하고 있습니다. 원래 이전 페이지에서 Scriptlet을 사용하여 수행 했었지만 지금은 그 일이 낯설게되었습니다. 그리고 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> 

답변

0

당신은 후반 응답 죄송이

<s:set var="stringIndex" value="%{#status.index++}"/> 
+0

같은 인덱스에 대한 귀하의 ovn 변수를 설정해야합니다. iterator의 처음이나 끝 부분에서 설정해야합니까? 그리고 두 번째로 나는 이것을 진술에서 어떻게 사용합니까? documentList와 유사할까요? [stringIndex] documentName – JRHigdon

+0

이전 코드에서 여러 번 설정해야합니다. iterator의 내부에 있어야합니다. –

+0

나는 지금 내가 어디에 있는지 보여주기 위해 코드를 에디팅했다. 문제는 페이지에 인쇄하기 위해 out 문에 인덱스를 추가하려고 할 때 비어있는 것입니다. 숨겨진 태그에서 어떻게 선언하는지 미러링하려고하면 코어 태그가 마음에 들지 않습니다. 코어 출력 태그 대신 사용할 수있는 strutsa 태그가 있습니까? – JRHigdon

관련 문제