0

struts2 タグ ライブラリを使用して以下のコードを記述する方法。struts2にはイテレータやifなどのタグがたくさんあるので、それを使って以下のコードをどのように実現できますか?

struts2 タグで変数を初期化する方法と、その後、以下に示すコードのようにインクリメントまたはデクリメント操作を適用する方法を教えてください。

int j=-1;
for(int i=0;i<4;i++)
{
j++;
if(j==0)
{
}
if(j==1)
{
}
if(j==2)
{
j=-1;
}
}

これは、scriplet タグ内で Java コードを使用した私の JSP ページです。

<h3>Our Latest Projects</h3>
<%! int j = -1; %>

<%
  for (int i = 0; i < 4; i++) {
    j++;
%>
  <% if (j == 0) { %>
<div class="wrapper">
  <article class="grid_4 alpha">
    <h4 class="p2">Project 1</h4>
    <figure><a href="#"><img class="img-border" src="images/page4-img1.jpg" alt=""/></a></figure>
    <div class="box" style="height: 20px; width: 257px;">
      <div class="padding">
        <a href="#">View Details</a>
      </div>
    </div>
  </article>
  <% } %>

  <% if (j == 1) { %>
  <article class="grid_4">
    <div class="indent-left4">
      <h4 class="p2">Project 2</h4>
      <figure><a href="#"><img class="img-border" src="images/page4-img2.jpg" alt=""/></a></figure>
      <div class="box" style="height: 20px; width: 257px;">
        <div class="padding">
          <a href="#">View Details</a>
        </div>
      </div>
    </div>
  </article>
  <% } %>
  <% if (j == 2) { %>
  <article class="grid_4 omega">
    <div class="indent-left3">
      <h4 class="p2">Project 3</h4>
      <figure><a href="#"><img class="img-border" src="images/page4-img3.jpg" alt=""/></a></figure>
      <div class="box" style="height: 20px; width: 257px;">
        <div class="padding">
          <a href="#">View Details</a>
        </div>
      </div>
    </div>
  </article>
</div>
<br><br>
<% j = -1; %>
<% } %>
<% } %>
4

1 に答える 1

2

なんて惨事だ。

article > divそれが他のものとどのように関連しているかが明確ではなかったので、スタイリングを除くすべてがここにあります。このコードの残りの部分に基づいて、それを理解できるはずです。

<div class="wrapper">
  <s:iterator begin="1" end="#session.count" status="stat">
    <s:set var="artClass" value="#stat.first ? 'alpha' : #stat.last ? 'omega' : ''" />

    <article class="grid_4 <s:property value="#artClass"/>">
      <div> <!-- Not really sure what you want here for the class. -->
        <h4 class="p2">Project <s:property value="#stat.count"/></h4>
        <figure><a href="#"><img class="img-border" src="images/page4-img<s:property value="#stat.count"/>.jpg" alt=""/></a></figure>
        <div class="box" style="height: 20px; width: 257px;">
          <div class="padding">
            <a href="#">View Details</a>
          </div>
        </div>
      </div>
    </article>
  </s:iterator>
</div>

また、「アルファ」と「オメガ」がリストの最初と最後の列ではなく、最初と最後の列にある場合は、これを多少変更する必要があります。個人的には、Java コードでリストを 3 つのリストに分割し、2 回繰り返します。

<s:iterator value="listOfLists" var="list">
  <s:iterator value="list" status="stat">
    <s:set var="artClass" value="#stat.first ? 'alpha' : #stat.last ? 'omega' : ''" />

    <article class="grid_4 <s:property value="#artClass"/>">
      <div> <!-- Not really sure what you want here for the class. -->
        <h4 class="p2">Project <s:property value="#stat.count"/></h4>
        <figure><a href="#"><img class="img-border" src="images/page4-img<s:property value="#stat.count"/>.jpg" alt=""/></a></figure>
        <div class="box" style="height: 20px; width: 257px;">
          <div class="padding">
            <a href="#">View Details</a>
          </div>
        </div>
      </div>
    </article>
  </s:iterator>
  <br/><br/> <!-- Use CSS. -->
</s:iterator>

これをカスタム タグとユーティリティ メソッドにカプセル化して、非常にクリーンにすることもできます。

于 2012-08-22T02:32:33.793 に答える