我有一个控制器向 JSP 页面返回类型类型的ArrayList
对象MyClass
。MyClass1
ArrayList 中的对象属于不同的类,假设MyClass2
每个类都扩展了 MyClass。我可以使用 forEach 标记遍历集合并获取当前元素类型,这要归功于字段type
inMyClass
但是当我尝试访问特定字段时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 中不可能处理这种情况吗?