2009-05-15 10 views
4

Ich bin neu in JSP und Tiles, sowie Java. Wir sind derzeit dabei, unsere Website mit diesen neu zu erstellen, aber ich bin verwirrt, wenn etwas in einen View-Preparer gesetzt werden sollte, der vom Controller kommt.Wann ein View Preparer für Kacheln zu verwenden ist

Zum Beispiel wird die aktuelle Seite, an der ich arbeite, eine Kachel für die Paginierung haben, einschließlich des Inhaltstyps (X von Y-Inhaltstyp). Mein ursprünglicher Plan war, einen View Preparer zu verwenden, um die Daten zu nehmen, die vom Controller (HashMap) gesendet werden, und einige Attribute für die Paginierungskachel auszugeben, aber ein Kollege sagte mir, dass dies in der Steuerung geschehen sollte.

Wenn dies der Fall ist, was ist der Sinn des View Preparer? Ich bin nur ein bisschen verwirrt. Ich habe die Tiles-Dokumente überprüft und sie sind ziemlich einfach/unbrauchbar.

Kann mir jemand einen geeigneten Anwendungsfall für einen View Preparer geben?

Antwort

4

Der Controller dient zur Ausführung von Geschäfts- oder Transaktionslogik. Das heißt, als Reaktion auf eine Benutzeraktion muss die Anwendung eine oder mehrere Aktionen ausführen und dann entscheiden, welche Ansicht gerendert werden soll. Deshalb hat es einen Controller genannt, weil es den Ablauf einer Anwendung "steuert". Wenn der Controller seinen Job ausführt, müssen die Änderungen an den Daten für den Benutzer sichtbar werden. Die Vorbereitung dieser Daten für die Anzeige ist jedoch nicht Aufgabe des Controllers. Stellen Sie nur sicher, dass die erforderlichen Aktionen ausgeführt werden und dass die Daten verfügbar sind.

Die Ansicht, in diesem Fall Ihre JSP-Seiten, wird dann die Daten übernehmen und anzeigen. Wie ich es verstehe, hilft der View Preparer Ihnen, einige Aspekte der Ansicht zu berücksichtigen, so dass eine Vorbereitung, die möglicherweise in verschiedenen Ansichten durchgeführt werden muss, vom Preparer durchgeführt werden kann.

So ist das Beispiel in der Dokumentation der Vorbereitung eines Menüs ein guter Anwendungsfall. Menüs sind manchmal dynamisch in dem Sinne, dass es vom Zustand des Systems abhängt, was genau für den Benutzer angezeigt wird. Angenommen, Sie möchten einen Login-Link im Menü anzeigen, wenn der Benutzer nicht angemeldet ist, und diesen Link aus dem Menü entfernen, wenn der Benutzer angemeldet ist. Anstatt diese Logik in jede Seite zu codieren, die ein Menü anzeigen soll kann einen ViewPreparer verwenden, der das Menü generiert, das jede Logik implementiert, die notwendig ist. Dieser View Preparer kann dann mehreren Seiten zugeordnet werden.

Betrachten Sie es eher als Manipulation der Daten zum Anzeigen statt Geschäftslogik.

Verwandte Themen