【发布时间】:2025-12-22 00:25:16
【问题描述】:
我有一个事件对象,里面有一个Map<ObjectA, List<ObjectB>>,ObjectA 是标签,list<ObjectB> 是表格行。使用以下代码,我可以正确显示表格,但是当我将表单提交给Action 类时,地图是null 在事件中。
JSP 代码:
<s:iterator value="event.planMap" var="map" >
<h4>Plan Type: <s:property value='key' /></h4>
<table id="plan">
<s:iterator value="value" status="stat" var="detail" >
<tr>
<td><input type="text" id="name" name="event.planMap['%{#map.key}'][%{#stat.index}].name" value="<s:property value='name'/>"/></td>
<td><input type="text" id="text" name="event.planMap['%{#map.key}'][%{#stat.index}].text" value="<s:property value='text'/>"/></td>
<td><input type="text" id="contact" name="event.planMap['%{#map.key}'][%{#stat.index}].contact" value="<s:property value='contact'/>"/></td>
</tr>
</s:iterator>
</table>
</s:iterator>
@Andrea & Roman,所以我修改了代码。显示表格是正确的,但我得到了错误,它进入了结果输入。如果我删除planMap,则操作会成功。所以至少我知道错误是planMap。修改后的代码是:
Event 定义:
public Event {
private Map<Object_A, Object_B> planMap;
public Map<Object_A, Object_B> getPlanMap {
return this.planMap;
}
public void setPlanMap(Map<Object_A, Object_B> planMap) {
this.planMap = planMap;
}
}
Object_B 定义:
public Object_B {
private List<Object_C> details;
public List<Object_C> getDetials() {
return this.details;
}
public void setDetails(List<Object_C> details) {
this.details = details;
}
}
JSP代码为:
<s:iterator value="event.planMap" status="mStat" >
<h4>Plan Type: <s:property value='key' /></h4>
<table id="plan">
<s:iterator value="value.details" status="stat">
<tr>
<td><input type="text" id="name" name="event.planMap['% {#mStat.index}'].details[%{#stat.index}].name" value="<s:property value='name'/>"/></td>
<td><input type="text" id="text" name="event.planMap['%{#mStat.index}'].details[%{#stat.index}].text" value="<s:property value='text'/>"/></td>
<td><input type="text" id="contact" name="event.planMap['%{#mStat.index}'].details[%{#stat.index}].contact" value="<s:property value='contact'/>"/></td>
</tr>
</s:iterator>
</table>
</s:iterator>
【问题讨论】:
-
在我修改为在 Object_B 的定义中具有 Map
并具有 List 详细信息后,它不起作用。 JSP 是
标签: java jsp type-conversion struts2 ognl