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

时间:2014-07-31 05:37:50

标签: java jsp java-8

这个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无法解决。

提前致谢。

1 个答案:

答案 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();