2 Stimmen

Entfernen von Duplikaten aus Spring 3 MVC Standard und Ajax Request Controllern und Views

In letzter Zeit habe ich in das gleiche Problem mit meinem Spring MVC-Anwendungen immer und immer wieder laufen, und ich versuche, mit einer langfristigen Lösung zu kommen.

Das Problem ist, dass in einem Standard-Spring-3-Controller, fügen Sie Modell-Objekte, geben Sie den View-Namen (entweder inline oder von einigen injizierten Feld) und zurück. Das Problem, auf das ich gestoßen bin, ist, dass, wenn Sie eine Anforderung haben, die eine Seite mit einer Person zurückgibt, und ihre Haustiere haben Sie etwas wie (nicht kompilierbar, psuedo):

@RequestMapping( value="personOverview", method="GET" )
public String getPersonOverview(model) {
    model.add(personRepo.getPerson( theName ));
    model.add(petRepo.getPetsForPerson( thePerson ));

    return "personOverviewViewName";
}

In Ihrer Ansicht können Sie nun alle diese Informationen wiedergeben. Das Problem tritt jedoch auf, wenn jemand die "Haustiere" für die Person aktualisiert und Sie nur den Teil der Seite, der die Haustiere anzeigt, neu darstellen möchten.

Sie müssen nicht nur die Rendering-Logik in einem JSP-Fragment oder in JavaScript neu schreiben, sondern auch den Controller-Code für jeden Teil der getPersonOverview-Methode duplizieren. Wenn Sie die Controller-Methoden in kleinere Abschnitte aufteilen, können Sie nicht die gesamte Seite rendern, sondern müssen jeden Abschnitt mit einer separaten Anforderung rendern.

In einem normalen ModelViewController-Pattern besteht die Lösung darin, dass die Ansicht Zugriff auf das Modell hat, aber in Spring MVC ist das Modell in Java und liegt hinter der Anforderungsschicht, so dass Sie für jedes Modellobjekt Anforderungshandler erstellen müssen.

Ich weiß, diese Frage kann ein bisschen abstrakt erscheinen, aber was ich suche, ist Muster oder Prinzipien, die verwendet werden können, um mir zu ermöglichen, volle Seiten mit vielen Modellobjekten zu bauen, aber auch in der Lage sein, Teile der Seite mit Ajax ohne Duplizierung zu aktualisieren.

0voto

artbristol Punkte 31293

Ich habe es nicht selbst benutzt, aber haben Sie in Betracht gezogen Kacheln ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X