0

我想不出在 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}"/>

我在这里做错了什么?

4

2 回答 2

3

这是因为:

pageContext.getAttribute()

返回对象

您需要将 Object 转换为 int。例如:

int myIntPrimitiveValue = Integer.valueOf("" + pageContext.getAttribute("..."));
于 2011-12-21T23:25:01.127 回答
0

将对象转换为您需要的类型,作为pageContext.getAttribute()返回对象,例如session返回对象。你需要做其中之一

int myIntPrimitiveValue = (Integer)pageContext.getAttribute("myDataObject.myIntPrimitiveValue");

          or

int myIntPrimitiveValue = Integer.valueOf("" + pageContext.getAttribute("myDataObject.myIntPrimitiveValue"));
于 2011-12-22T12:55:38.430 回答