Dans MVC (tels que JSP et Spring), est-il une mauvaise pratique d'afficher le code associé dans le contrôleur?Est-ce une mauvaise pratique de placer le code de vue dans le contrôleur?
Dans mon cas, le contrôleur effectue un certain travail, puis transmet les résultats à la vue (JSP). Dans le cas d'un message d'état, je peux passer le texte entier du message à la vue, ou passer une clé et laisser le JSP le mapper au texte du message.
Exemple:
message généré dans le contrôleur
Controller Spring:
protected ModelAndView onSubmit(...) {
Map map = new HashMap();
// Controller processing
if (...)
map.put("status", "Case 1 status message");
else
map.put("status", "Case 2 status message");
return new ModelAndView("viewPage", map);
}
JSP:
{$status}
message généré en vue
Controller Spring:
protected ModelAndView onSubmit(...) {
Map map = new HashMap();
// Controller processing
if (...)
map.put("status", "case1");
else
map.put("status", "case2");
return new ModelAndView("viewPage", map);
}
JSP:
<c:choose>
<c:when test="{$status eq 'case1'}">Case 1 status message</c:when>
<c:when test="{$status eq 'case2'}">Case 2 status message</c:when>
</c:choose>
Dans le premier cas, le contrôleur et le code JSP est plus simple, mais il y a une logique liée est vue dans le contrôleur. Dans le second cas, toute la logique d'affichage est dans la JSP, mais le code n'est pas aussi simple. Est-ce que je viole le paradigme MVC en générant du texte de message dans le contrôleur? Quelle est la pratique courante pour ce scénario?
+1 - J'aime comment vous ne dites pas oui ou non, mais donne une bonne suggestion qui serait être une amélioration, car elle donne également plus de flexibilité. –