2010-03-02 13 views
5

ist es möglich, InternalResourceViewResolver und BeanNameViewResolver zusammen in der gleichen Web-App zu verwenden?Frühling und Sicht Resolver

Ich meine InternalResourceViewResolver meine JSP aufzulösen.

und stattdessen BeanNameViewResolver meine Excel zu lösen (ich muss die URL übergeben).

Tschüss. Danke

+0

Ich habe bemerkt, dass die neue Spring 3 'p: xyz'-Syntax unter SO-Leuten populär wird ... Ich mag es nicht, ich finde es verwirrend. Vielleicht werde ich einfach alt. – skaffman

Antwort

3

Ja, Sie können mehrere Resolver kombinieren. Spring iteriert über sie und verwendet den ersten Resolver, der den angegebenen Namen auflösen kann. Sie können auch die Eigenschaft order in Resolvern festlegen, um die Iterationsreihenfolge anzugeben.

9

Sie können so viele View Resolver in Ihrem Kontext haben, wie Sie möchten, Spring wird nacheinander über sie hinweggehen, bis sie die Auflösung der Ansicht erreicht.

Es gibt eine große Vorbehalt, aber:

Hinweis: Bei ViewResolvers Verkettungs, ein InternalResourceViewResolver immer Bedürfnisse letzte sein, da es versuchen werden, Ansicht Namen aufzulösen, egal ob die zugrunde liegende Ressource tatsächlich existiert.

Dies ist ein „Fehler“ mit dem Servlet-API, da die InternalResourceViewResolver nicht wissen muss, wenn die Ressource vorhanden ist, bevor es tatsächlich zu versuchen.

So stellen Sie sicher, dass Ihre BeanNameViewResolver vor der InternalResourceViewResolver definiert ist, oder explizit die order-Eigenschaft auf jedem angeben.

+0

Vielen Dank! Das Attribut order wird nur benötigt, wenn ich im selben Servlet-Kontext bin. Ich meine, wenn ich einen Servlet-Kontext für das Jsp habe, wo ich InternalResourceViewResolver und ein anderes für die Excel-Dateien verwende, wo ich BeanNameViewResolver verwende, muss ich den Auftrag nicht verwenden. Richtig? Sie sind unabhängig .. – andrew0007

+0

Das stimmt. Das Attribut 'order' ist nur erforderlich, wenn sie sich im selben Kontext befinden * und * sie befinden sich nicht bereits in der richtigen Reihenfolge in der Datei. – skaffman

Verwandte Themen