Abstrakte Klassen und Spring MVC @ ModelAttribute / @ RequestParam

8

Ich habe eine Hierarchie von Modellklassen in meiner Spring / Hibernate-Anwendung.

Gibt es beim Senden eines POST-Formulars an einen Spring MVC-Controller eine Standardmethode zum Angeben des Typs des gesendeten Objekts, sodass Spring die richtige Unterklasse des Typs initialisieren kann, der in @ModelAttribute oder @RequestParam der empfangenden Methode deklariert wurde?

Zum Beispiel:

%Vor%

Jackson kann JESON als spezifischen Subtyp mit der @ JsonTypeInfo-Annotation deserialisieren. Ich hoffe, dass Spring dasselbe tun kann.

    
EngineerBetter_DJ 07.09.2011, 15:59
quelle

1 Antwort

6
  

Jackson kann JSON als einen spezifischen Subtyp deserialisieren   @JsonTypeInfo-Annotation. Ich hoffe, dass Spring dasselbe tun kann.

Angenommen, Sie verwenden Jackson für die Typumwandlung (Spring verwendet Jackson automatisch, wenn es im Klassenpfad gefunden wird und Sie <mvc:annotation-driven/> in Ihrem XML haben), dann hat das nichts mit Spring zu tun. Notieren Sie die Typen und Jackson wird die korrekten Klassen instanziieren. Trotzdem müssen Sie instanceof in Ihrer Spring MVC-Controller-Methode überprüfen.

Aktualisierung nach Kommentaren:

Sehen Sie sich 15.3 an .2.12 Anpassen der WebDataBinder-Initialisierung . Sie könnten eine @InitBinder -Methode verwenden, die einen Editor basierend auf einem Anfrageparameter registriert:

%Vor%     
Sean Patrick Floyd 08.09.2011, 08:07
quelle