Frage

Ich bin der Gestaltung einer Web-Anwendung, die mehrere Komponenten auf einer einzigen Seite benötigt Laden. (In Bezug auf das Seitenlayout ist ähnlich wie Google Reader) Ich mag diese Komponenten voneinander getrennt halten (aus Gründen wie Wiederverwertbarkeit). Zum Beispiel, ich habe eine linke Panel, dass der Benutzer lassen navigieren zwischen mehreren Feeds, dass er (benutzerspezifische) abonniert hat und auf der rechten Seite, dass wir zeigen, den Inhalt des Futtermittels, und vielleicht eine rechte Platte, die einige spezifische Informationen über das zeigt, spezifische Feed. Mein Verständnis von MVC und insbesondere Frühlings-MVC ist, dass jeder Controller verantwortlich für die gesamte Seite. Hier sind zwei Lösungen, die ich gekommen haben sich mit der Erforschung, nachdem dies ein wenig, und keiner von ihnen klingt gut zu mir.

  1. Haben Sie einen Haupt-Controller, die auf diese URL abgebildet wird, und laden Sie dann die anderen Komponenten aus dem Inneren der jsp-Datei. Das ist machbar, aber klingt nicht wie eine gute Lösung.
  2. Verwenden von Portlets.

Ich möchte wissen, was die besten Praktiken sind. Das klingt wie ein sehr häufiges Problem, Web-Designs in MVC-Frameworks, wie Menschen es tun?

War es hilfreich?

Lösung

Spring MVC-Controller ist in der Regel „in charge“ :-) Umgang mit einer bestimmten Anfrage , das bedeutet nicht unbedingt, dass die Anforderung führt zu einer monolithischen Seite Benutzer präsentiert werden.

Da Sie sprechen über Google Reader-ähnliche Funktionalität, vielleicht werden Sie AJAX verwenden zwischen den verschiedenen Komponenten auf Ihrer Seite zu laden / navigieren? Wenn das der Fall ist, können Sie einfach Ihre 3 Komponenten Karte Controller trennen (über separate URIs) plus einen „Haupt“ Controller müssen zunächst die gesamte Seite geladen werden.

Wenn das nicht der Fall, und Ihre Seite ist statisch, können Sie Ihren Controller fungieren als „Router“ haben der Art, indem zuerst Ihre Komponenten instanziieren und dann Befehle / Anfragen an eine geeignete Komponente bei Bedarf zu lenken. Jede Komponente würde seinen eigenen Teil des Modells aktualisieren, nach welcher der „main“ Controller die Ansicht zurückkehren würde gerendert werden.

Können Sie Portlets für diesen Einsatz? Sicher. Aber wenn wir über eine einzige Seite reden es vielleicht ein bisschen zu viel des Guten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top