0

私は自分の Web サイトで作業しており、データベースからポートフォリオ オブジェクトを印刷しようとしています。それらを印刷するページにはページネーションがあります。

次のタグが使用されている場合、スクリプトを使用して新しいページを作成します。

<div class="pics">
...
</div>

上記の div 内には、最大 8 個のアンカー タグのみを配置する必要があります。アンカー タグは特別なものではなく、<s:property>タグを使用しますが、それだけです。

この機能を実現するために、次のことを試しました。

<c:set var="counter" value="0"/>
<s:iterator value="allPortfolio">
    <c:if test="${(counter mod 8) == 0}">
        <div class="pics">
   </c:if>

   <a href="<s:property value="filename">">Download</a>

    <c:if test="${(counter mod 8) == 0}">
        </div>
    </c:if>

    <c:set var="counter" value="${counter+1}"/>

</s:iterator>

ただし、このコードでは 11 ページ (データベース内のポートフォリオ オブジェクトごとに 1 ページ) が作成されます。最初に 8 項目、2 番目に残りの 3 項目を含む 2 ページのみを作成する必要があります。

言い換えれば、2つだけあるはずです

<div class="pics">
...
</div>

1 つには 8 つのアンカー タグが、もう 1 つには 3 つのアンカー タグが含まれています。

代わりに、ページが読み込まれると次のコードが作成されます。

 <div class="pics">
     <a href="1ba918625bca57f6e059c2d05393010b04da5ed6.png">Download</a>
 </div>
 <a href="ec49d4ca243a481b7fa819dfea783e0dd8f5a431.jpg">Download</a>   
 <a href="1b4ab5a3bebdf88045ef3818e852185c86e33048.png">Download</a>
 <a href="e12eaed32a97bb78ddd863696ca510d943c4d978.png">Download</a>
 <a href="2b6ee029b3fcef21b0a220a6b14de16206ce588b.png">Download</a>
 <a href="e3e94e7ac6bfb09ca012d30912525848f2d361ed.png">Download</a>
 <a href="f07e24b31fb65e38aa3d4bbe97a24a71c281aae7.png">Download</a>
 <a href="dd41b536ca45642fa9827311498b9480d6df9be8.png">Download</a>
 <div class="pics">
     <a href="a2ad0d4b73daa3311e9f9b16dcd7d9476cd6e748.png">Download</a>
 </div>
 <a href="45fa47125a5dfe3608d6d80fb0a9ba1f5c444264.png">Download</a>
 <a href="ee9b1571aa22e935772792ac363cc95e2a77bdfd.png">Download</a>
4

3 に答える 3

1

<s:iterator>Struts2タグにはまさにそのための属性があるため、実際にはそのカウンターは必要ありませんstatus。それを定義すると、イテレータ内でさまざまなプロパティを使用できます。たとえばindex、0 から始まる反復の現在のカウントを返します。firstプロパティはブール値であり、反復で最初に使用可能なアイテムであることを示します。

ところで、タグを閉じることを忘れないでください。

<s:iterator value="allPortfolio" status="stat">
  <s:if test="#stat.first">
    <div class="pics">
  </s:if>
  <s:if test="!#stat.first && #stat.index % 8 == 0">
    </div>
    <div class="pics">
  </s:if>

  <a href="<s:property value="filename"/>">Download</a>

  <s:if test="#stat.last">
    </div>
  </s:if>
</s:iterator>
于 2013-07-26T18:22:42.820 に答える
0

このコードを試してください

<s:set var="countdown" value="0"/>
<s:iterator value="allPortfolio" status="status">

  <s:if test="#status.index % 8 == 0">
    <div class="pics">
    <s:set var="countdown" value="7"/> 
  </s:if>

   <a href="<s:url value='%{filename}'/>">Download</a>

   <s:if test="#countdown == 0 || #status.last">
     </div>
   </s:if>

   <s:set var="countdown" value="%{#countdown-1}"/>
</s:iterator>
于 2013-07-26T18:22:36.047 に答える