Java 无法在JSP代码中执行类型转换

Java 无法在JSP代码中执行类型转换,java,jsp,java-8,Java,Jsp,Java 8,此JSP代码在Java8中运行良好,但在Java8中无法运行相同的代码 <c:set var="sAttrib" value="${bean.attrib}" /><% iteratorVal ((LinkedHashMap)sAttrib).keySet().iterator(); while(iteratorVal.hasNext()) { key = (Integer) iteratorVal.next(); currDev = (Entity) ((Linke

此JSP代码在Java8中运行良好,但在Java8中无法运行相同的代码

<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

提前感谢。

当您使用时,您可以在页面上下文中创建所谓的作用域变量。不能在scriptlet中直接使用它

无论如何,对于您的用例,不要使用scriptlet,而是直接在foreach中使用${bean.attrib}:

<c:forEach var="iterator" items="${bean.attrib}">
    ...
</c:forEach>
或直接:

Map attrib = pageContext.findAttribute("bean").getAttrib();

尝试卸载java 8并安装java 8是否导入了核心标记库?这可能会对您有所帮助。
Map attrib = pageContext.findAttribute("bean").getAttrib();