网络编程 发布日期:2025/11/4 浏览次数:1
本文实例分析了JSP中c:foreach遍历和s:iterator遍历的异同。分享给大家供大家参考。具体如下:
①jstl c:foreach
首先我们来看一个普通的servlet:
import com.xy.entity.Board;
import com.xy.entity.Topic;
import com.xy.entity.User;
public class ToMainAction extends HttpServlet
{
private IBoarderDao boardDao = new BoardDaoImpl();
private ITopicDao topicDao = new TopicDaoImpl();
private IUserDao userDao = new UserDaoImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
// 板块列表
List<Board> boards = boardDao.getAllBoard();
List<Integer> count = new ArrayList<Integer>();
List<User> users = new ArrayList<User>();
List<Topic> lastTopic = new ArrayList<Topic>();
if (null != boards)
{
for (Board b : boards)
{
// 回帖数
List<Topic> topic = topicDao.getTopicByBoardId(b.getborderId());
if(null!=topic)
{
int num = topic.size();
count.add(num);
}
else
{
count.add(0);
}
// 最近更新
Topic t = topicDao.getLastTopic(b.getborderId());
lastTopic.add(t);
// 最近更新的作者
User u = userDao.getUserByuId(t.getUid());
users.add(u);
}
request.setAttribute("boards", boards);
request.setAttribute("count", count);
request.setAttribute("users", users);
request.setAttribute("lastTopic", lastTopic);
RequestDispatcher dis = request.getRequestDispatcher("main.jsp");
dis.forward(request, response);
}
}
public void doPost
(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doGet(request, response);
}
}
main.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="${requestScope.boards!=null}">
<c:forEach var="b" items="${requestScope.boards}" varStatus="status">
<tr>
<td width="6%" height="68">
</td>
<td width="67%">
<div align="left" class="blueSpan">
<img src="/UploadFiles/2021-04-02/topic.gif">
②s:iterator
package com.xy.action;
action
public class ToMainAction extends ActionSupport implements RequestAware
{
private IBoarderDao boardDao = new BoardDaoImpl();
private ITopicDao topicDao = new TopicDaoImpl();
private IUserDao userDao = new UserDaoImpl();
private Map<String, Object> request;
public void setBoardDao(IBoarderDao boardDao)
{
this.boardDao = boardDao;
}
public void setTopicDao(ITopicDao topicDao)
{
this.topicDao = topicDao;
}
public void setUserDao(IUserDao userDao)
{
this.userDao = userDao;
}
public String execute()
{
// 板块列表
List<Board> boards = boardDao.getAllBoard();
List<Integer> count = new ArrayList<Integer>();
List<User> users = new ArrayList<User>();
List<Topic> lastTopic = new ArrayList<Topic>();
if (null != boards)
{
for (Board b : boards)
{
// 回帖数
List<Topic> topic = topicDao.getTopicByBoardId(b.getBorderId());
if (null != topic)
{
int num = topic.size();
count.add(num);
} else
{
count.add(0);
}
// 最近更新
Topic t = topicDao.getLastTopic(b.getBorderId());
lastTopic.add(t);
// 最近更新的作者
User u = userDao.getUserByuId(t.getUid());
users.add(u);
}
request.put("boards", boards);
request.put("count", count);
request.put("users", users);
request.put("lastTopic", lastTopic);
}
return SUCCESS;
}
public void setRequest(Map<String, Object> request)
{
this.request = request;
}
}
main.jsp:
<%@ taglib uri="/struts-tags" prefix="s"%>
<s:if test="#request.boards!=null">
<s:iterator value="#request.boards" id="b" status="st">
<tr>
<td width="6%" height="68">
</td>
<td width="67%">
<div align="left" class="blueSpan">
<img src="/UploadFiles/2021-04-02/topic.gif">
希望本文所述对大家的JSP程序设计有所帮助。