回1楼的,目前输出的内容是类似于这样的东西:   书名:${bookList.bookName} 
                                        作者: ${bookList.bookAuthor}
                                        价格:${bookList.bookPrice}
而且,并没有循环,只显示了一次。容器里包含的内容是Book类,里面有几个属性,bookId,bookName,bookAuthor,bookPrice;BookListService类是是用来调用服务的,这里是做一个查询,使用SPRING+HIBERNATE,把查询出来的信息包装到LIST里面。
还缺少什么信息吗?

解决方案 »

  1.   


    <%List bookList=new ArrayList(); %> 
      <c:forEach var="book" items="${bookList}"> 
       <font size="3">书名:  <c:out id="bookName" value="${bookList.bookName}"/> </font> <br> 
     </c:forEach>  
    LZ可以试试  
      

  2.   

    回4楼,你的意思是不是把bookList变量写成局部变量是吧,这个也不行。JSTL在使用迭代时,传进来的容器一定是通过session,或者request这样对象来取得的
      

  3.   

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

  4.   

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

  5.   

    回4楼/6楼,findAllBooks()这个方法具体用途是通过HIBERNATE包装的JDBC去查询BOOK这张表,然后把查到的数据一条一条包装成BOOK类的对象,然后把这些BOOK对象包装在一个容器里面,这个方法最后返回的是一个确实的容器。所以声明了变量后,可以直接指过去的另外,后台的记录数确实打印出来了。回7楼,MYECLIPSE默认使用的JSTL是2.4的,上次因为是个什么原因,我把它还原到2.3了。请指教一下怎么才能把它回到2.4的JSTL
      

  6.   

    回7楼,更正一下,我上面的说法有错误,我曾经在WEB.XML里面做过一个改动是把“ xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" ”改成了现在的“ <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> ”,其它地方没有改过,是不是要还原成2.4的那个声明东西
      

  7.   

        我把XML版本改成了2.4,使用了JSTL1.1,又试了一下,报了500的错,内容是无法识别“.”,因此无法把指定的值转换成String来显示。最新的JSP代码如下:
        
        <%@ page language="java" contentType="text/html; charset=utf-8"%>
    <%@ page import="com.SpringIOCbyLiufeng.*" %>
    <%@ page import="java.util.*, com.liufeng.bean.book.Book" %>
    <%@ page import="com.liufeng.service.BookListService" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%
    BookListService allBookBean = SpringByFriend.getSpringByFriend().getBookListService(); Collection bookList = allBookBean.findAllBooks();
    System.out.println("bookLlist=-=="+bookList.size()) ;
    session.setAttribute("bookList", bookList);
     %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      
      <body>
        <c:forEach var="book" 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>
        
        谁可以教我一下,JSTL1.1的迭代和显示值的方法
      

  8.   

    <c:forEach var="book" items="${bookList}"> 
      

  9.   

    回11楼,循环里面我应该怎么把属性的值显示出来呀,前面在测试的时候报错了:The "." operator was supplied with an index value of type "java.lang.String" to be applied to a List or array, but that value cannot be converted to an integer. 
      

  10.   

    在<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isELIgnored="false"%> 中加isELIgnored="false"