Abfangen der anzeigen - /Antwort-in Spring MVC 3
Ich bin neu in Spring MVC 3 und ich verstehen die grundlegenden Konzepte. Ich bin in der Lage, einfache Dinge zu tun wie die Erstellung von Controllern und services und Ansichten. Ich habe jedoch nicht einen Ausflug in die erweiterte Territorium. Daher entschuldige ich mich, falls diese Frage scheint dumm (oder gar nicht).
Frage ich mich, ob es einen Weg gibt, um abzufangen, die Ansicht und/oder Reaktion und ändern Sie es, bevor es wieder an den client gesendet? Ich denke, das ist wie Frühling führt die Datenbindung für die Elemente bilden, auf dem Weg nach draußen an den client. Was würde ich gerne tun ist kontrollieren Annotationen auf Elemente innerhalb einer domain-Klasse, und ändern Sie die Ansicht nach diese Anmerkungen. Dies beinhaltet die Injektion der neue code (HTML oder Javascript) in die Antwort.
UPDATE
Als ich dachte über diese ein wenig mehr, merkte ich, dass das Finale rendering erfolgt durch die JSP. Also ich denke, die Frage ist, ob es eine Möglichkeit zum abfangen des Modells, bevor es bewegt sich auf die Seite und herauszufinden, die Anmerkungen, auf die bean, die die Daten gebunden ist.
Gibt es eine Möglichkeit, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Klasse, die Sie wahrscheinlich suchen, ist
org.springframework.web.servlet.HandlerInterceptor
Sie implementieren können, die postHandle Methode auf, die Schnittstelle und wie die Signatur schon sagt, haben Zugriff auf die Anfrage und die Antwort, sowie das anzeigen von Modell-Objekten, die Ihren controller erstellt. (und der controller selbst, dass das, was dieObject handler
parameter ist.)Sie 'aktivieren', indem Sie an die handler-Zuordnung in Ihren dispatcher-servlet.
Übrigens, die Bindung ist eigentlich in der HandlerAdapter, der sucht Controller-Methoden und auf Sie berufen, es ist nicht ein Abfangjäger.
Bearbeiten:
Zur Beantwortung Ihrer Bearbeiten, ja, das ist, wo Sie eine chance haben, zu greifen, die Modell-Objekt und die Arbeit mit, mehr, wenn der controller fertig ist, aber bevor es weiter geht zur JSP rendering. So könnte man etwas tun, wie das hinzufügen myCustomScript der
ModelMap
und werfen${myCustomScript}
im<head>
Ihrer jsp, erhalten eine Unterlage, Objekt aus derModelMap
und zu prüfen, etc, etc.Ja eine Reihe von Möglichkeiten, tatsächlich:
preHandle
/postHandle
Methoden und wenden Sie die interceptor, um eine Reihe von Controllern