【发布时间】:2014-05-16 21:29:56
【问题描述】:
好的。所以我使用下面的 JSP 和 Java 代码来访问notMessageFieldList。它工作正常,但是,当我离开页面时,我不断收到OgnlException: source is null for getProperty(null, "0") 警告。似乎 Struts 2 正在尝试获取 null 值并触发此警告。有没有办法在不调整我的 Tomcat 设置的情况下摆脱它?
JSP:
<s:iterator var="counter" begin="0" end="3">
<tr>
<th style="font-size: 120%; font-weight: 900; color: red;">X</th>
<td style="font-size: 80%;">NEW</td>
</tr>
<tr>
<td><b>Field Name:</b>
</td>
<td style="float: left">
<s:textfield
name="notMessageFieldList[%{counter}].tag"
size="47">
</s:textfield>
</td>
</tr>
<tr>
<td><b>Description:</b>
</td>
<td style="float: left">
<s:textfield
name="notMessageFieldList[%{counter}].description"
size="47">
</s:textfield>
</td>
</tr>
<tr>
<td><b>Data Type:</b>
</td>
<td style="float: left">
<s:select
list="validDataTypes"
name="notMessageFieldList[%{counter}].dataType"
key="dataType.required"/>
</td>
</tr>
</s:iterator>
JAVA 动作:
private List<NotificationMessageField> notMessageFieldList = new ArrayList<>(4);
public List<NotificationMessageField> getNotMessageFieldList() {
return notMessageFieldList;
}
public void setNotMessageFieldList(@Nullable final List<NotificationMessageField> notMessageFieldList) {
if (CollectionUtils.isNotEmptyList(notMessageFieldList)) {
this.notMessageFieldList.clear();
this.notMessageFieldList = new ArrayList<>(notMessageFieldList);
} else {
this.notMessageFieldList = new ArrayList<>(5);
}
}
JAVA POJO(假设常规设置,getter/setter):
public NotificationMessageField(final String tag, final String description, final String dataType) {
this.tag = tag;
this.description = description;
this.dataType = dataType;
}
【问题讨论】: