解决在jsp页面中使用jstl无法遍历request域中list集合的问题

解决在jsp页面中使用jstl无法遍历request域中list集合的问题


1. 前言

​ 最近在写一个很简单的Javaweb项目,里面需要将request域中的list集合加载到jsp页面,我使用el表达式和jstl来加载request域中的list集合,但是在执行jsp页面的时候出现异常

According to TLD or attribute directive in tag file, attribute items does not accept any expressions

2. 原因

​ 在jsp页面使用jstl的时候出现该异常,可能的原因是使用了jstl1.2版本,同时又没有使用JSTL core库的备用版本,简单来说就是你的JSTL版本和web.xml版本不匹配造成的。

3.解决方法

第一种:使用jstl1.1,指令应该为<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core“ %>

第二种:使用jstl/core_rt备用库,JSTL core库的有两种taglib伪指令, 其中RT库即是依赖于JSP传统的请求时属性值, 而不是依赖于EL来实现(称为EL库.JSP2.0将支持EL),此时改写指令为:<%@ taglib prefix="c"% uri=http://java.sun.com/jstl/core_rt %>

第三种:修改web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
              
改为2.3版本的
 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

博客参考https://blog.csdn.net/lcore/article/details/22337493

原文地址:https://www.cnblogs.com/Alitac/p/12296494.html