Ho una gerarchia di classi di modelli nella mia applicazione Spring/Hibernate.Classi astratte e Spring MVC @ ModelAttribute/@ RequestParam
Quando si invia un modulo POST a un controller MVC Spring, esiste un modo standard per specificare il tipo di oggetto inviato, quindi Spring può creare un'istanza della sottoclasse corretta del tipo dichiarato nel metodo di ricezione @ModelAttribute o @RequestParam ?
Ad esempio:
public abstract class Product {...}
public class Album extends Product {...}
public class Single extends Product {...}
//Meanwhile, in the controller...
@RequestMapping("/submit.html")
public ModelAndView addProduct(@ModelAttribute("product") @Valid Product product, BindingResult bindingResult, Model model)
{
...//Do stuff, and get either an Album or Single
}
Jackson può deserializzare JSON come un sottotipo specifico utilizzando l'annotazione @JsonTypeInfo. Spero che Spring possa fare lo stesso.
Grazie, quello che volevo dire era questo è possibile quando _not_ presentazione di un carico utile JSON, piuttosto una normale forma POST sottomissione. –
@Deejay ok aggiornato la mia risposta –
Ciao, provo a risolvere un problema simile, ma senza risultato .. questa la mia domanda: http://stackoverflow.com/questions/21550238/how-instantiate-a-concrete-class- in-init-binder puoi aiutarmi ?? – Teo