今天在配置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 >
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
>
^---^
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"
%>
经调整后,问题解决