IDEA 错误: According to TLD or attribute directive in tag file, attribute [items] does not accept any

一、错误提示

javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:274)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:238)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:155)
	at javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:256)

二、错误原因

在jsp中用c:foreach 遍历集合的时候出现这个错误,意思是无法遍历items里边的对象。

此时要去对应的servlet里面检查一下,传到jsp页面的参数是不是集合属性的参数,应该是传的参数类型不对引起的。

三、改正

如果要改正这个错误,只需把那一行改成 <c:forEach items="${datas}" var=“idinfo”> 即可。必须保证datas 是一个 List 。

在对应的Servlet中,datas应该是一个list集合。

@WebServlet("/index")
public class ListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1.查询数据库读取数据
        FileDaoImpl fileDao = new FileDaoImpl();

        // 2.把数据存放到request作用域
        req.setAttribute("datas", fileDao.getAll());

        // 3.转发到jsp
        // 将这个jsp页面放在WEB-INF下,防止用于直接访问jsp页面,因为直接访问是没有数据的
        req.getRequestDispatcher("WEB-INF/index.jsp").forward(req, resp);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值