Właśnie zacząłem używać Spring. Natknąłem się na wiele tutoriali. Widziałem więcej przykładów przy użyciu InternalResourceViewResolver
niż UrlBasedViewResolver
. Spojrzałem na dokumentację wiosenną, ale nie potrafię zrozumieć korzyści płynących z użycia jednego lub drugiego. Czy ktoś może podać jakieś wyjaśnienie?czym różni się InternalResourceViewResolver od UrlBasedViewResolver
Odpowiedz
InternalResourceViewResolver
to wygodna podklasa UrlBasedViewResolver
.
Javadoc opisuje niektóre dodatkowe właściwości w InternalResourceViewResolver
, które mogą być użyteczne w niektórych sytuacjach:
Wygodne podklasą UrlBasedViewResolver który obsługuje InternalResourceView (tj Servlets i JSP) i podklasy, takie jak JstlView.
AlwaysInclude
: Określa, czy wykonywane jest przekazywanie dalej lub dołączanie.
ExposeContextBeansAsAttributes
: Pozwala, aby wszystkie ziarna w kontekście były dostępne jako atrybuty żądania, co oznacza, że można je przywoływać z EL w JSP.
ExposedContextBeanNames
: W przypadku wartości innej niż NULL określa listę fasoli, która będzie wyświetlana, w przeciwieństwie do wszystkich z nich.
Źródło z forum wiosny: Spring Q&A forum
Sprężyna obsługuje szeroki zakres technologii widoku. ViewResolvers są tutaj, aby podłączyć dowolną ze znanych technologii obsługiwanych widoków do swojej aplikacji.
UrlBasedViewResolver to prosty algorytm rozpoznawania widoku, który po prostu analizuje widoki różnych technologii, dopasowując wzory do odpowiadających im nazw plików.
UrlBasedViewResolver
jest tutaj, aby obsługiwać wszystkie technologie widoku typu "AbstractUrlBasedView".
AbstractJasperReportsView
, AbstractPdfStamperView
, AbstractTemplateView
, InternalResourceView
, RedirectView
, TilesView
, XsltView
są znane podklasy AbstractUrlBasedView
.
Tak więc podczas korzystania z UrlBasedViewResolver
można użyć dowolnej z podklas o numerze AbstractUrlBasedView
jako typu technologii widoku (przez ustawienie odpowiedniej tylko klasy ViewClass).
InternalResourceViewResolver jest podklasą UrlBasedViewResolver
.
Ale jeśli używasz InternalResourceViewResolver
, (która jest wygodną podklasą UrlBasedViewResolver
), możesz użyć technologii typu InternalResourceView
jako technologii widoku.
Myślę, że to odpowiada na twoje pytanie.
InternalResourceViewResolver
jest rzeczywiście podklasy UrlBasedViewResolver
.
UrlBasedViewResolver
- Wyświetl nazwę jest bezpośrednio rozwiązany na adres URL. Brak jest jawnego mapowania. Wyświetl nazwę to sam adres URL lub możesz dodać numer prefix
lub suffix
zgodnie z projektem.Możesz także prefiksować jako "przekierowanie:" i "przekieruj:", aby przekierować i przesłać dalej żądanie.
InternalResourceViewResolver
- Podklasa UrlBasedViewResolver obsługująca InternalResourceView. InternalResourceView
zawija JSP lub inny zasób tej samej aplikacji internetowej. Możesz uzyskać dostęp do modeli w JSP przy użyciu EL.
UWAGA: Niektóre URLBasedViewResolvers (płytki, prędkość Freemarker) sprawdzić, czy zasób istnieje i zwraca wartość null. Mogą więc być w dowolnym miejscu w łańcuchu rozwiązywania nazw. Inne muszą być ostatnie (JSTL/JSP, XSLT, JSON).
Tak więc InternalResourceViewResolver
musi być ostatnim elementem wywołującym łańcuchy widoku, ponieważ rozpoznaje nazwę widoku, czy obecny zasób występuje, czy nie.
Innym URLBasedViewReolver S są
- InternalResourceViewResolver
- VelocityViewReolver
- FreeMarkerViewReolver
- ThymeleafViewResolver
- XsltViewReolver
- 1. czym jest ścieżka //, czym różni się od/
- 2. Czym różni się ArrayListMultimap od LinkedListMultimap?
- 3. Czym różni się żądanie wyciągnięcia od oddziału?
- 4. Czym różni się aplikacja Facebook od karty?
- 5. Czym różni się Rakietowy od Planu?
- 6. Czym różni się LinkedBlockingQueue od ConcurrentLinkedQueue?
- 7. Czym różni się insmod od modprobe?
- 8. Czym różni się adapter od interfejsu sieciowego?
- 9. Czym różni się okno od siebie?
- 10. Czym różni się <<?
- 11. Czym różni się HawtDispatch od Executorów Java? (i netty)
- 12. Czym różni się Clojure STM od Haskell STM?
- 13. Raven DB: Czym różni się "przemytnik" od "Import/Export"?
- 14. Czym różni się PESSIMISTIC_READ od PESSIMISTIC_WRITE w WZP?
- 15. Dlaczego generics w Javie? Czym różni się od przeciążania?
- 16. Czym XACML 3.0 różni się od XACML 2.0?
- 17. Czym różni się błąd od wyjątku w JavaScript
- 18. Czym różni się wyjątek od .ToString() i .Message?
- 19. Czym różni się klucz obcy od klucza referencyjnego?
- 20. Czym różni się metoda rozszerzenia od metody statycznej?
- 21. Czym różni się @ {push} od @ {u} lub oddziału śledzenia?
- 22. Czym różni się JSON.NET DataContractJsonSerializer od serializatora Newtonsoft JSON
- 23. Co to jest Google Dremel? Czym różni się od Mapreduce?
- 24. Portal Liferay: Czym różni się od Websphere Portal
- 25. Co robi flash.discard? Czym się różni od flash.clear()?
- 26. Co robi jQuery .focus (1)? Czym różni się od .focus()?
- 27. Czym różni się EST strefy czasowej od EST5EDT?
- 28. Czym różni się "origin master" od "origin/master"
- 29. Co to jest glom ?. Czym różni się od mapPartitions?
- 30. Czym \ v różni się od \ x0b lub \ x0c?