In MVC (wie JSP und Spring), ist es schlechte Praxis, verwandten Code im Controller zu sehen?Ist es eine schlechte Übung, View-Code in den Controller zu schreiben?
In meinem Fall führt der Controller etwas Arbeit aus und übergibt dann die Ergebnisse an die Ansicht (JSP). Im Falle einer Statusnachricht kann ich den gesamten Nachrichtentext an die Ansicht übergeben oder einen Schlüssel übergeben und von der JSP dem Nachrichtentext zuordnen.
Beispiel:
Nachricht erzeugt in Controller
Frühling Controller:
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}
Nachricht im Hinblick erzeugt
Frühling Controller:
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>
Im ersten Fall ist die Steuerung und JSP-Code einfacher, aber es gibt Ansicht Logik in der Steuerung zusammen. Im zweiten Fall ist die View-Logik in der JSP, aber der Code ist nicht so einfach.
Verstehe ich das MVC-Paradigma, indem ich Nachrichtentext im Controller erzeuge? Was ist die übliche Praxis für dieses Szenario?
+1 - Ich mag, wie Sie nicht nur Ja oder Nein gesagt haben, sondern gab einen schönen Vorschlag, dass würde eine Verbesserung sein, da es auch mehr Flexibilität gibt. –