JSTL中EL使用遇到的問題

今天在配置struts-menu動態加載菜單數據時,按照struts-menu官方網站上的demo所說,用如下方式:

<menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html"
            repository
="repository">
          
<c:forEach var="menu" items="${repository.topMenus}">
            
<menu-el:displayMenu name="${menu.name}"/>
          
</c:forEach>
        
</menu:useMenuDisplayer>

我用的應用服務器是weblogic9.2,可是運行報錯如下:

<c:forEach var="menu" items="${repository.topMenus}">
                                              
^---^
main.jsp:
38:26: 該特性不支持請求時間值。
<c:forEach var="menu" items="${repository.topMenus}">
                                              
^---^
main.jsp:
38:26: 該特性不支持請求時間值。
<c:forEach var="menu" items="${repository.topMenus}">
                                              
^---^

at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:
292)
at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:
200)
at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:
164)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:
235)
at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:
391)
Truncated. see log file 
for complete stacktrace
> 

這個錯誤弄的有點糊塗,後來到Tomcat上運行,也出錯:

org.apache.jasper.JasperException: /top.jsp(9,1) According to TLD or attribute directive in tag file, attribute items does not accept

這個錯誤就比較明顯,應該是表達式的問題。後來經查資料發現原來是引用JSTl庫的版本問題,對於JSTL1.0引用時應如下:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

而對於JSTL1.1引用時候應改變uri,如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

經調整後,問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章