这个JSP代码在java 8中运行良好,但在java 8中无法运行。
<c:set var="sAttrib" value="${bean.attrib}" /><% iteratorVal
((LinkedHashMap)sAttrib).keySet().iterator(); while(iteratorVal.hasNext())
{ key = (Integer) iteratorVal.next(); currDev = (Entity)
((LinkedHashMap)sAttrib).get(key);%>
我收到的错误是:
sAttrib
无法解决。
提前致谢。
答案 0 :(得分:0)
使用<c:set var="sAttrib" value="${bean.attrib}" />
时,您可以在页面上下文中创建所谓的范围变量。你不能直接在scriptlet中使用它。
无论如何,对于你的用例,不要使用scriptlet ,而是直接在foreach中使用${bean.attrib}
:
<c:forEach var="iterator" items="${bean.attrib}">
...
</c:forEach>
如果您真的需要使用范围变量的java中的内容,您必须首先从其范围中获取它:
Map attrib = pageContext.findAttribute("sAttrib");
或直接:
Map attrib = pageContext.findAttribute("bean").getAttrib();