如题:在做一个servlet的练习的时候用到了jstl标签的迭代,却出现了以上的错误:
最后发现错误在下面的jsp页面,在贴出来:该引用的也都引用了。
<%@ page language="java" contentType="text/xml; charset=UTF-8" import="java.util.*" pageEncoding="utf-8"%><?xml version="1.0" encoding="UTF-8"?> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <videonews > <c:forEach items="videos" var="video" > <news id="${video.id}"> <title>${video.title}</title> <titllength>${video.timelength}</titllength> </news> </c:forEach> </videonews>
一开始在网上找问题所在:
有人说是bean的属性名称错误,或者没有get,set方法,但是我的bean如下:
/** * @FILE:News.java * @AUTHOR:Administrator * @DATE:2013-5-19 下午6:08:00 **/ package com.yehui.service.bean; /******************************************* * * @CLASS:News * @DESCRIPTION: * @AUTHOR:Administrator * @VERSION:v1.0 * @DATE:2013-5-19 下午6:08:00 *******************************************/ public class News { private Integer id; private String title; private Integer timelength; public News() { } public News(Integer id, String title, Integer timelength) { this.id = id; this.title = title; this.timelength = timelength; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Integer getTimelength() { return timelength; } public void setTimelength(Integer timelength) { this.timelength = timelength; } }
什么都对,什么都有,哈哈
最后又错误的认为没有给工程加jstl jar包,又累死累活的到网上找好jar包,加入到web-inf/lib下,依然还是那个错误。都有点绝望了,突然间看到http://201205083157.iteye.com/blog/1536873这篇文章,才意识到了自己犯了一个严重的错误。哈哈:
<c:forEach items="videos" var="video" >
这句应该写作
<c:forEach items="${videos}" var="video" >
才对。也就是那个文章的作者说的,都没有找到videos这个对象,怎么能找到它的属性呢?