日期:2014-05-17  浏览次数:20694 次

jsp开发遇到一个纠结的问题,求高手解决。
我jsp菜鸟,在网上下载了一个jsp源码,但是运行后发现在进入主页的时候 主页里用EL表达式输出的项目都没有输出
比如这段代码:
  <c:forEach var="flag" items="${specialList}">
  <div class="feat_prod_box">
  <div class="prod_img"><a href="showBookByIdServlet?bookId=${flag.bookId}"><img src="${flag.picture}" alt="" title="" border="0" /></a>
  <p class="price">原价:¥${flag.price}</p>
  <p class="nowPrice">现价:¥${flag.nowPrice}</p>
  </div>
  <div class="prod_det_box">
  <div class="box_top"></div>
  <div class="box_center">
  <div class="prod_title">内容简介</div>
  <p class="details">${flag.introduce}</p>
  <a href="page?type=4" class="more">- 更多 -</a>
  <a href="showBookByIdServlet?bookId=${flag.bookId}" class="more">-详细-</a>
  <div class="clear"></div>
  </div>
   
  <div class="box_bottom"></div>
  </div>  
  <div class="clear"></div>
  </div>
  </c:forEach>

因为在加载这个主页的时候确实没有数据库访问。然后当我点击注销后,连接一个servlet后就能获取EL表达式中的值了
这个servlet是:
public class UserLoginOut extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getSession().invalidate();
request.getSession().setAttribute("LoginOutMessage", "注销成功");
request.getRequestDispatcher("index").forward(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

}

}

所以我就不明白了,这是为什么啊?求高手解决。

还有如果我想在加载index.jsp的时候就输出EL表达式该如何做呢?

------解决方案--------------------
直接进jsp主页当然没值,
如果从servlet转到jsp,请先给 specialList 赋值
------解决方案--------------------
不连接SERVLET
<c:forEach var="flag" items="${specialList}">
哪里来的值啊, 我觉得specialList没值导致的
------解决方案--------------------
c标签库你导入了吗?
------解决方案--------------------
探讨
c标签库你导入了吗?

------解决方案--------------------
最好在Servlet里设置个断点调试一下看看
------解决方案--------------------
探讨
不连接SERVLET
<c:forEach var="flag" items="${specialList}">
哪里来的值啊, 我觉得specialList没值导致的