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.myIntPrimitiveValueJSTLで次のように印刷できるため、に有効な値があることがわかります。

<c:out value="${myDataObject.myIntPrimitiveValue}"/>

私はここで何が間違っているのですか?

4

2 に答える 2

3

それの訳は:

pageContext.getAttribute()

オブジェクトを返します

必要なのは、オブジェクトを 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 に答える