Struts 升级到 2.5.5(从 2.5.3)
Struts Upgrade to 2.5.5 ( from 2.5.3)
我试图从 struts 2 版本 2.5.3
升级到 2.5.5
...我遇到了一个奇怪的问题。
我们有如下标签:
<%@tag description="Rensders an ajax link" pageEncoding="UTF-8"%>
<%@attribute name="parameters" description="list of parameters that put to this link"
type="java.util.HashMap" required="false"%>
..............
<c:forEach items="${parameters}" var="p">
<c:param name="${p.key}" value="${p.value}"/>
</c:forEach>
以上代码在我升级时抛出异常!
Caused by: 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)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_c_005fforEach_005f0(link_tag.java:439)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_c_005furl_005f0(link_tag.java:405)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_sec_005fauthorize_005f0(link_tag.java:366)
at org.apache.jsp.tag.web.html.link_tag.doTag(link_tag.java:230)
如您所见,该标签是 JSTL 标签,而不是 struts !
我使用 Tomcat 8.0。
任何意见。
奇怪的是我在我的标签中使用的parameters
名称与struts 2.似乎这个版本的struts定义了一个parameters
上下文,这造成了名称冲突。
当我在 jsp struts 2.5.3
中测试 ${parameters}
时,我注意到
当我在 jsp struts 2.5.5
中测试 ${parameters}
时,我看到 org.apache.struts2.dispatcher.HttpParameters
所以我将 may 标签属性重命名为 params
一切正常!
我试图从 struts 2 版本 2.5.3
升级到 2.5.5
...我遇到了一个奇怪的问题。
我们有如下标签:
<%@tag description="Rensders an ajax link" pageEncoding="UTF-8"%>
<%@attribute name="parameters" description="list of parameters that put to this link"
type="java.util.HashMap" required="false"%>
..............
<c:forEach items="${parameters}" var="p">
<c:param name="${p.key}" value="${p.value}"/>
</c:forEach>
以上代码在我升级时抛出异常!
Caused by: 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)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_c_005fforEach_005f0(link_tag.java:439)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_c_005furl_005f0(link_tag.java:405)
at org.apache.jsp.tag.web.html.link_tag._jspx_meth_sec_005fauthorize_005f0(link_tag.java:366)
at org.apache.jsp.tag.web.html.link_tag.doTag(link_tag.java:230)
如您所见,该标签是 JSTL 标签,而不是 struts !
我使用 Tomcat 8.0。 任何意见。
奇怪的是我在我的标签中使用的parameters
名称与struts 2.似乎这个版本的struts定义了一个parameters
上下文,这造成了名称冲突。
当我在 jsp struts 2.5.3
中测试 ${parameters}
时,我注意到
当我在 jsp struts 2.5.5
中测试 ${parameters}
时,我看到 org.apache.struts2.dispatcher.HttpParameters
所以我将 may 标签属性重命名为 params
一切正常!