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>
   </div>
   <table width="100%" border="3" bordercolor="#D0E3FF"
    style="font-size: 12px">

    <tr style="background-color: #F3F8EF">
     <td height="22" colspan="2" class="noborder">
      &nbsp;
     </td>
     <td width="11%" style="border: 0; font-size: 12px">
      发帖数
     </td>
     <td width="21%" style="border: 0; font-size: 12px">
      最近更新
     </td>
    </tr>

    <c:if test="${requestScope.boards!=null}">
     <c:forEach var="b" items="${requestScope.boards}"  varStatus="status">
      <tr>
       <td width="6%" height="68">
        &nbsp;
       </td>
       <td width="67%">
        <div align="left" class="blueSpan">
         &nbsp;&nbsp;
         <img src="images/topic.gif" width="18" height="21" />
         &nbsp;&nbsp;
         <a href="ToListAction?boardId=${b.borderId}">${b.borderName}</a>
        </div>
       </td>
       <td>
        ${requestScope.count[status.index]}
       </td>
       <td>
        <br />
        <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>
       </td>
      </tr>
     </c:forEach>
    </c:if>

   </table>

   <div id="divCopy">
    &copy; xy制作—2011-09-01
   </div>
  </div>
 </body>

 

checUser.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<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>
</c:if>


时间: 2024-09-15 15:19:42

J2EE中EL和JSTL结合运用的相关文章

J2EE中EL表达式

EL全名为Expression Language. EL语法很简单,主要的语法结构是${sessionScope.user.sex}所有EL都是以${为起始.以}为结尾的. 上述EL范例的意思是:从Session的范围中,取得用户的性别. 假若依照之前JSP Scriptlet的写法如下: User user = (User)session.getAttribute("user"); String sex = user.getSex(); 两者相比较之下,可以发现EL 的语法比传统JS

J2EE中EL的隐式对象param和paramValues

一.param.html <html> <head><title>param.jsp</title></head> <body> <form method="post" action="param.jsp"> <p>姓名:<input type="text" name="username" size="15"

jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法_JSP编程

在自己练手时遇到了EL表达式被当成字符串处理而没有正确解析的现象.当时工程中使用的Javaee5, web.xml <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/

jsp中如何去除JSTL标签库“include, taglib”等留下的空白行

在做项目的时候,经常会使用到JSTL和EL表达式,有时我们需要看下页面生成的源代码,但是当jsp中充满了jstl的各种标签,页面就会存在很多的空白部分,有时太多了会让浏览器假死掉,这是我们就想要去掉这些空白的部分了.去掉的方法很多,下面一一列举出来. 我的开发及服务器环境:Windows7 + Eclipse2014 + Tomcat7.0 + JDK 1.7.0 经过多番测试,可用的方法有: 1.在每个JSP的头上加上一段代码   <%@ page trimDirectiveWhitespac

jsp-JSP中EL表达式不用&amp;amp;lt;c:out&amp;amp;gt;怎么输出值?

问题描述 JSP中EL表达式不用<c:out>怎么输出值? 从a页面跳转到b页面之后,在b页面中没有定义过<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>,但是用可以直接取到ord的值,但如果想在表格的单元格 中直接输出ord的值该如何做?不好用,取不到值,并且在/c:foreach之间所有原本正常显示的元素都显示不出来了. 解决方案 额,我自己试出来了,已经解决

在J2EE中APPLET和HTML作为客户端的比较

j2ee|比较|客户端 前言 在j2ee中,客户端常用的两中方式是html,和基于application的applet,因为采用的技术不同,这两个方式都有其优缺点,在考虑采用何种技术(或者两种都用),需要根据两种技术的特点,以及此项目的应用范围来综合考虑.以下分"易用性","性能","维护,扩展","交互","安全"五部分来说明各自的特点,并针对客户,开发人员角色阐明一下个人观点. 易用性 客户对于易用性要

软件体系架构模式在J2EE中的应用

本文介绍了软件体系架构产生的背景和架构模式的基本理论.重点介绍管道与过滤器体系架构模式的结构,实现,优缺点等,然后以J2EE的Servlet Filter为例进行剖析它是怎样应用该架构模式的,最后简单阐述了在其它J2ee应用中(Jboss和Axis)的实践. 软件体系架构 1.软件体系架构产生背景 在经历60年代的软件危机之后,使人们开始重视软件工程的研究.来自不同应用领域的软件专家总结了大量的有价值的知识. 当初,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法

checkbox-jsp中el表达式问题,急!!!求大神!

问题描述 jsp中el表达式问题,急!!!求大神! 我从后台传入一个ArrayList给jsp,然后我要在jsp的foreach循环中判断这个字符串数组中是否包含我的foreach中每次遍历的一个值,应该怎么做. 代码是这样的,后台的ArrayList中有[2,3,4,5],传check给jsp,然后jsp中的代码是这样的: <c:forEach items="${compRole }" var="t" varStatus="index"

jsp中el Map取值问题标题标题标题

问题描述 jsp中el Map取值问题标题标题标题 现在要做个树状菜单来展现单位与个人账号,1对多,现在我的做法是将单位账号展现后, 里面 根据单位账号的ID取后台map,即个人账号为${map['id']},请问如何将这里面的id 改成动态的 即${map['单位账号.id']}呢?或者大仙们告诉一个别人方法 ! 解决方案 就是MAP的应用问题了,你想做点开一个单位名称,就显示该单位所有人的账号对吧?首先要初始化好MAP,把每个单位的个人账号分别放在数组中,比如a[0]=;a[1]=;然后把单