如何使用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;
}
}
这是我的jsp页面,我在这里使用了scriplet标记中的java代码
<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; %>
<% } %>
<% } %>
真是一场灾难。
以下是除了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>
此外,如果"alpha"one_answers"omega"用于第一列和最后一列,而不是列表中的第一个/最后一个项目,则需要对其进行一些更改。就我个人而言,我会在Java代码中将列表拆分为三个列表,并进行两次迭代:
<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>
您还可以将其封装在一个自定义标记和实用程序方法中,使其变得非常干净。