我无法找到在EL / JSTL中执行此操作的方法,所以当我这样做时:
<%
int myIntPrimitiveValue = pageContext.getAttribute("myDataObject.myIntPrimitiveValue");
MyEnumObject myEnumInstance = myEnumObject.get(myIntPrimitiveValue);
String myEnumValueName = myEnumInstance.getName();
pageContext.setAttribute("myEnumValueName", myEnumValueName);
%>
我收到此错误:
Cannot cast from Object to int (line 1 in this snippet)
我知道myDataObject.myIntPrimitiveValue
中有一个有效值,因为我可以使用JSTL将其打印出来:
<c:out value="${myDataObject.myIntPrimitiveValue}"/>
我在这里做错了什么?
答案 0 :(得分:3)
这是因为:
pageContext.getAttribute()
返回Object
您需要将Object转换为int。例如:
int myIntPrimitiveValue = Integer.valueOf("" + pageContext.getAttribute("..."));
答案 1 :(得分:0)
将对象转换为所需类型,如pageContext.getAttribute()
返回对象,例如session
返回对象。
你需要做其中一个
int myIntPrimitiveValue = (Integer)pageContext.getAttribute("myDataObject.myIntPrimitiveValue");
or
int myIntPrimitiveValue = Integer.valueOf("" + pageContext.getAttribute("myDataObject.myIntPrimitiveValue"));