• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP中c:foreach遍历和s:iterator遍历异同实例分析

    本文实例分析了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
     {
     // 板块列表
     ListBoard> boards = boardDao.getAllBoard();
     ListInteger> count = new ArrayListInteger>();
     ListUser> users = new ArrayListUser>();
     ListTopic> lastTopic = new ArrayListTopic>();
     if (null != boards)
     {
      for (Board b : boards)
      {
      // 回帖数
      ListTopic> 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="images/topic.gif" width="18" height="21" />
      a href="logined/ToListAction?boardId=${b.borderId}">
      ${b.borderName}/a>
      /div>
     /td>
     td>
      ${requestScope.count[status.index]}
     /td>
     td>
      p align="left">
      ${requestScope.lastTopic[status.index].title}
      /p>
      br />
      p align="left">
        ${requestScope.users[status.index].userName}
      /p>
      br />
      p align="left">
      修改时间:
      br>
      ${requestScope.lastTopic[status.index].modifyTime}
      /p>
      br />
     /td>
     /tr>
     /c:forEach>
    /c:if>
    
    

    ②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 MapString, 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()
     {
     // 板块列表
     ListBoard> boards = boardDao.getAllBoard();
     ListInteger> count = new ArrayListInteger>();
     ListUser> users = new ArrayListUser>();
     ListTopic> lastTopic = new ArrayListTopic>();
     if (null != boards)
     {
      for (Board b : boards)
      {
      // 回帖数
      ListTopic> 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(MapString, 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="images/topic.gif" width="18" height="21" />
      a href="logined/ToListAction?boardId="+s:property value="#b.borderId"/>+">
       s:property value="#b.borderName" />
      /a>
      /div>
     /td>
     td>
      s:property value=" #request.count[#st.index]" />
     /td>
     td>
     br />
      p align="left">
      s:property value="#request.lastTopic[#st.index].title" />
      /p>
     br />
      p align="left">
      s:property value=" #request.lastTopic[#st.index].userName" />
      /p>
     br />
      p align="left">
      修改时间:
     br/>
      s:property value=" #request.lastTopic[#st.index].modifyTime" />
      /p>
      br />
     /td>
     /tr>
        /s:iterator>
    /s:if>
    
    

    希望本文所述对大家的JSP程序设计有所帮助。

    您可能感兴趣的文章:
    • 小议JavaScript中Generator和Iterator的使用
    • 深入解读JavaScript中的Iterator和for-of循环
    • JavaScript实现Iterator模式实例分析
    • 如何实现java Iterator迭代器功能
    • Java Iterator接口遍历单列集合迭代器原理详解
    • PHP设计模式之迭代器(Iterator)模式入门与应用详解
    • Java集合使用 Iterator 删除元素
    • Python迭代器iterator生成器generator使用解析
    • JavaScript设计模型Iterator实例解析
    上一篇:struts2的select标签用法实例分析
    下一篇:JSP学习之数据库开发小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP中c:foreach遍历和s:iterator遍历异同实例分析 JSP,中,foreach,遍历,和,iterator,