日期:2014-05-19  浏览次数:20723 次

在JSP页面里使用JSTL迭代标签,无法得到值,大家帮忙指正一下。
这个是带有使用标签的JSP文件:
   
  <%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="com.SpringIOCbyLiufeng.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.liufeng.service.BookListService" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<%!List bookList; %>
<%
BookListService allBookBean = SpringByFriend.getSpringByFriend().getBookListService();

bookList = allBookBean.findAllBooks();
request.setAttribute("bookList", bookList);
 %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
  <body>
  <c:forEach var="bookList" items="${bookList}">
  <font size="3">书名: <c:out value="${bookList.bookName}"/></font><br>
  <font size="3">作者: <c:out value="${bookList.bookAuthor}"/></font><br>
  <font size="4" color="red">价格: <c:out value="${bookList.bookPrice}"></c:out></font><br>
   
  <a href="sss">详细信息</a><br>
  <hr>
  </c:forEach>  
  </body>
</html>
   
  那个容器对象里面的值在我自己写的JAVA测试类里确实能够得到,现在使用了JSTL之后,只能得到表达式的内容,无法取得真正想得到的值。顺便请教一下大家,forEach在使用时候应该注意些什么

------解决方案--------------------

------解决方案--------------------
是不是缺少类型
------解决方案--------------------
引用楼主 sd8023580 的帖子:
这个是带有使用标签的JSP文件:

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="com.SpringIOCbyLiufeng.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.liufeng.service.BookListService" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<%!List bookList; %>
<%
BookListService allBookBean = SpringByFriend…

------解决方案--------------------
你要实力化一个对象啊!
bookList = allBookBean.findAllBooks(); 
system.out.println("bookLlist=-=="+bookList.size())
运行看后台打印是多少是要>0说明从数据库中取到值了

------解决方案--------------------
低版本的jstl不支持 表达式语言(${bookList.bookName})
建议<c:forEach var="book" items="${bookList}"> 看着很不舒服

------解决方案--------------------
<c:forEach var="book" items="${bookList}">
------解决方案--------------------
报错就说名能取到值了,只是你的值的类型有问题!