Spring Binding der zu löschenden Zeile einer Tabelle an SWF Model Property

nadine0206

Grünschnabel
Hallo!

Normalerweise finde ich für meine Probleme über Google schnell eine Lösung, doch leider weiß ich nicht recht nach was ich bei meinem Problem suchen soll. Ich hoffe ihr könnt mir helfen.

Ich verwende in meiner Webanwendung Spring, Spring Web Flow und JSP. Auf einer Seite wird eine Liste von Key-Value-Paaren als Tabelle dargestellt, wobei in jeder Zeile ein Remove Button dargestellt wird, womit man diese Zeile der Tabelle, also das Key-Value-Paar aus der Liste entfernen kann. Dafür iteriere ich über die Liste und erstelle für jede Zeile eine eigene Form, um den Key des zu löschenden Paares als hidden field an das Property removeTransferValue zu binden.

Dadurch ergeben sich aber sehr viele Forms und ich habe die Aufgabe diese Forms zu reduzieren. Wenn ich die Form aber um die gesamte Liste setze, dann werden bei Betätigen des Remove Buttons alle hidden Fields per Post übertragen und dadurch funktioniert das Löschen auch nicht mehr.

Folgender Code zeigt den Ausschnitt mit Forms pro Zeile:

Code:
		<c:forEach var="pagedKey"
			items="${dataTransferSetModel.pagedValueMapper.pageList}">
			<form:form id="remove${pagedKey}">
				<table>
					<tbody>
						<tr>
							<td>
								${pagedKey}
								
								<input type="hidden" name="removeTransferValue"
									value="${pagedKey}" />
							</td>
							<td>
								${dataTransferSetModel.filteredValueMapper[pagedKey]}
							</td>
							<td>
								<input id="removeButton${pagedKey}" type="submit" value="<fmt:message key="remove" />"
									name="_eventId_removeValueMapperEntry" />
									
								<script type="text/javascript">
								    Spring.addDecoration(new Spring.AjaxEventDecoration({
									elementId: 'removeButton${pagedKey}',
									event: 'onclick',
									formId: 'remove',
									params: {fragments:'mapListLayer'}
								    }));
								</script>
	
							</td>
						</tr>
					</tbody>
				</table>
			</form:form>
		</c:forEach>

Folgender Code zeigt eine Form für alle Zeilen:

Code:
<form:form id="remove">
		<c:forEach var="pagedKey"
			items="${dataTransferSetModel.pagedValueMapper.pageList}">
				<table>
					<tbody>
						<tr>
							<td>
								${pagedKey}
								
								<input type="hidden" name="removeTransferValue"
									value="${pagedKey}" />
							</td>
							<td>
								${dataTransferSetModel.filteredValueMapper[pagedKey]}
							</td>
							<td>
								<input id="removeButton${pagedKey}" type="submit" value="<fmt:message key="remove" />"
									name="_eventId_removeValueMapperEntry" />
									
								<script type="text/javascript">
								    Spring.addDecoration(new Spring.AjaxEventDecoration({
									elementId: 'removeButton${pagedKey}',
									event: 'onclick',
									formId: 'remove',
									params: {fragments:'mapListLayer'}
								    }));
								</script>
	
							</td>
						</tr>
					</tbody>
				</table>
		</c:forEach>
		</form:form>

Ich freue mich auf alle Antworten und Lösungsvorschläge.

Lg Nadine
 

Neue Beiträge

Zurück