天天看點

J2EE中EL和JSTL結合運用

這裡的例子隻是簡單的Servlet+JSP,沒有用到架構,如果用到Struts的話,隻要符合Struts中Action标準,或者直接用Struts标簽替代就可以了。

ToMainAction

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

<body>

  <div id="container">

   <div id="divlogin">

    <jsp:include page="checUser.jsp"></jsp:include>

   </div>

   <div class="nav">

    <div align="left" style="font-weight: bold"></div>

   <table width="100%" border="3" bordercolor="#D0E3FF"

    style="font-size: 12px">

    <tr style="background-color: #F3F8EF">

     <td height="22" colspan="2" class="noborder">

       

     </td>

     <td width="11%" style="border: 0; font-size: 12px">

      發帖數

     <td width="21%" style="border: 0; font-size: 12px">

      最近更新

    </tr>

    <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="ToListAction?boardId=${b.borderId}">${b.borderName}</a>

        </div>

       <td>

        ${requestScope.count[status.index]}

        <br />

        <p align="left">

         ${requestScope.lastTopic[status.index].title}

        </p>

         ${requestScope.users[status.index].userName}

         修改時間:

         <br>

         ${requestScope.lastTopic[status.index].modifyTime}        

      </tr>

     </c:forEach>

    </c:if>

   </table>

   <div id="divCopy">

    © xy制作—2011-09-01

  </div>

 </body>

checUser.jsp

<c:if test="${not empty sessionScope.uinfo}">

 <span style="color: blue">歡迎您:${sessionScope.uinfo.userName} </span>

 <span style="color: blue"><a href="GoBackAction">退出</a> </span>

</c:if>

<c:if test="${empty sessionScope.uinfo}">

 <span style=""><a href="ToLoginAction">登入</a></span>