SimpleFormController utilise le mauvais Editor
Bonjour tout le monde,
J'ai un formulaire permettant d'ajouter une Reaction sur une News. J'ai crée un NewsReactionEditor que j'ai ajouté dans le binder :
Code:
1 2 3 4 5 6
| @Override
protected void initBinder(final HttpServletRequest request,
final ServletRequestDataBinder binder) throws Exception {
super.initBinder(request, binder);
binder.registerCustomEditor(NewsReaction.class, new NewsReactionEditor(manager));
} |
J'ai également renseigné le type de commande que le contrôleur doit gérer :
Code:
1 2 3 4 5 6 7 8 9
| public NewsReactionFormController(final NewsManager manager) {
super();
this.manager = manager;
setCommandName("reaction");
setCommandClass(NewsReaction.class);
setValidator(new NewsReactionValidator());
setFormView("/news/react/add");
} |
Mais lorsque je tente d'envoyer le contenu de mon formulaire il tente d'éditer News et non pas la reaction..
J'ai donné au binder un NewsEditor et en effet, il utilise les NewsEditor au lieu du NewsReactionEditor.
Je ne vois vraiment pas pourquoi il tente d'éditer la News et non pas la réaction.
Pouvez-vous m'aider ?
Merci
Au cas ou, voici la méthode qui crée la reaction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @Override
protected Object formBackingObject(final HttpServletRequest request)
throws Exception {
User author = AuthorizationService.getPrincipal(request.getSession());
int newsId = Integer.parseInt(request.getParameter("news"));
NewsReaction reaction = (NewsReaction) super.formBackingObject(request);
reaction.setDate(new Date());
reaction.setAuthor(author);
News news = manager.getNews(newsId);
news.getReactions().add(reaction);
reaction.setNews(news);
return reaction;
} |