在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}">
------解决方案-------------------- 报错就说名能取到值了,只是你的值的类型有问题!