Ich binde eine Mehrfachauswahl-Liste in Spring, das Element erhält seine Daten nicht aus dem DAO, die Daten werden von einer anderen Auswahlliste hinzugefügt. Der Benutzer klickt auf eine Schaltfläche und die Daten werden mit jQuery an die Mehrfachauswahlliste gesendet.
Wenn das Formular abgeschickt wird, erfolgt keine Datenbindung für das Element, da es sich um einen komplexen Datentyp handelt. Deshalb habe ich einen CustomEditor registriert und ihn dem @initbinder hinzugefügt.
BEARBEITET Ich habe den Code aktualisiert, der CollectionEditor gibt nun eine Liste von Bürgern an die Ansicht zurück, jedoch kann ich die Daten in der Liste nicht abrufen, um die Auswahlliste zu füllen. Ich versuche, Elemente zur Liste hinzuzufügen, aber die JSP-Auswahllisten bleiben weiterhin null, wenn sie vom Server zurückkommen.
Hier ist der Code:
CustomCollectionEditor
@InitBinder("crime")
protected void initBinder(WebDataBinder binder, HttpServletRequest request, ServletRequestDataBinder victimbinder){
victimbinder.registerCustomEditor(List.class, "victims", new CustomCollectionEditor(List.class){
protected Object convertElement(Object element){
Citizens victims = new Citizens();
String ssNumber = "";
if (element instanceof String){
ssNumber = (String) element;
}
logger.debug("element is ;" +element);
try {
int socialSecurityNumber = Integer.parseInt(ssNumber);
victims = citizenManager.getCitizen(socialSecurityNumber);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage());
}
return victims;
}
});
JSP, das im Controller aus dem DAO gefüllt wird
Hier sind Daten aus der DAO-Klasse enthalten. Wenn die Schaltfläche geklickt wird, werden die Daten aus der Liste entnommen und an die andere Liste angehängt, die mit dem POJO verknüpft ist.
Opferliste/button>
JSP-Auswahlelement, das mit POJO verknüpft ist
Opfer im Verbrechen-