ArrayList
タイプのオブジェクトを JSP ページに返すコントローラーがありますMyClass
。ArrayList 内のオブジェクトは異なるクラスに属しています。たとえばMyClass1
、MyClass2
それぞれが MyClass を拡張しています。forEach タグを使用してコレクションを反復処理し、フィールドのおかげで現在の要素タイプを取得できますが、特定のフィールドtype
にMyClass
アクセスしようとすると、MyClass1
このエラーが発生しました。
javax.el.PropertyNotFoundException: Property 'noContentMessage' not found on type it.sei.core.rinterface.MyClass1
.
これが私のコードです:
class MyClass {
String type;
String variable;
}
class MyClass1 extends MyClass{
String someOtherField;
}
class MyClass2 extends MyClass{
String noContentMessage;
}
<core:forEach items="${model.GraphList}" var="element" varStatus="index">
<script language="javascript" type="text/javascript">
var type = '${element.type}';
switch (type)
{
case "type1":
{
var variable = '${element.variable}';
}
break;
case "type2":
{
var message = '${element.noContentMessage}';
}
break;
}
</script>
</core:forEach>
では、なぜこれが起こっているのですか?JSTL でこの状況を処理することはできませんか?