解決在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