So übergeben Sie eine Map <ObjectA, List <ObjectB >> an die Aktion in Struts 2

Ich habe ein Ereignisobjekt, in dem sich ein befindetMap<ObjectA, List<ObjectB>>, dasObjectA ist das Etikett und daslist<ObjectB> sind Tabellenzeilen. Mit folgendem Code kann ich die Tabellen korrekt anzeigen, aber wenn ich das Formular abschickeAction klasse ist die kartenull innerhalb der Veranstaltung.

JSP-CODE:
<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, also habe ich den Code geändert. Die Anzeige der Tabelle ist korrekt, aber ich habe eine Fehlermeldung erhalten und bin zur Ergebniseingabe übergegangen. Wenn ich das entferneplanMapgeht die Aktion zum Erfolg. Also zumindest weiß ich, dass der Fehler der istplanMap. Der geänderte Code lautet:

dasEvent Definition:
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;
    }
}
dasObject_B Definition:
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;
    }
}
Der JSP-Code lautet:
<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>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage