自从从 WAS6.1 升级到 WAS7.0 后,我在尝试显示数组中包含的值时遇到错误。
Java:
private Date[] days = new Date[10];
public Date[] getDays() {
return days;
}
JSP:
<td><fmt:formatDate value="${fair.days[0]}" pattern="dd.MM.yyyy" /><td>
这会导致以下错误:
[Exception in:/tilesContent/listFairs_bodyarea.jsp] Missing Resource in EL
implementation: ???propertyNotReadable???
我的应用程序在部署到 WAS6.1 服务器时工作正常。该问题仅出现在 WAS7 上。
我添加了一个返回 days[0] 的 getFirstDay() 方法,并使用 ${fair.firstDay} 访问它,这有效。访问数组有问题吗?
最佳答案
我想我已经找到了该问题的部分解释和解决方法。
我向 Fair 类添加了一个新的索引属性来检查索引
属性工作正常。他们是这样。
我为天数数组添加了一个新的 getter 并将其命名为 getXyz()。那工作正常。
我注意到原来的 getter 和 setter 是不对称的(歇斯底里的原因)。
public Date[] getDays() {
return days;
}
public void setDay(int day, Date date) {
this.days[day] = date;
}
我知道这有点奇怪,但到目前为止它一直有效。反正我修改了 方法如下:
public Date[] getDays() {
return days;
}
public void setDays(Date[] dates) {
this.days = dates;
}
public void setDay(int day, Date date) {
this.days[day] = date;
}
问题不再出现。
我无法解释为什么这会解决问题,因为我认为只使用了 getter。这个“解决方案”对我来说没问题,因为代码看起来更好而且有效。
(如果您知道为什么可以解决问题,请随时添加评论)
关于java - Websphere 7 和 JSTL : Cannot get value from arrays -> Missing Resource in EL implementation: ? ??propertyNotReadable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385444/