Ho appena iniziato a utilizzare Spring. Mi sono imbattuto in molti tutorial. Ho visto più esempi utilizzando InternalResourceViewResolver
rispetto a UrlBasedViewResolver
. Ho esaminato la documentazione di Spring, ma non riesco a capire il vantaggio dell'utilizzo dell'uno o dell'altro. Qualcuno può fornire qualche spiegazione?che differenza tra InternalResourceViewResolver vs UrlBasedViewResolver
risposta
InternalResourceViewResolver
è una sottoclasse conveniente di UrlBasedViewResolver
.
Il JavaDoc descrive alcune proprietà aggiunte a InternalResourceViewResolver
che potrebbero essere utili in alcune situazioni:
conveniente sottoclasse di UrlBasedViewResolver che supporta InternalResourceView (cioè servlet e JSP) e sottoclassi come JstlView.
AlwaysInclude
: Controlla se l'inoltro o l'inclusione sono terminati.
ExposeContextBeansAsAttributes
: Consente a tutti i bean nel contesto di essere disponibili come attributi di richiesta, il che significa che possono essere referenziati da EL in JSP.
ExposedContextBeanNames
: Se non null, specifica l'elenco di bean che verranno esposti, a differenza di tutti.
Fonte da forum primavera: Spring Q&A forum
La molla supporta un'ampia gamma di tecnologie di visualizzazione. ViewResolvers sono qui per collegare una qualsiasi delle tecnologie di visualizzazione supportate note all'applicazione.
UrlBasedViewResolver è un semplice risolutore di viste che risolve semplicemente le viste di diverse tecnologie, associando i modelli URL
ai nomi di file corrispondenti.
UrlBasedViewResolver
è qui per supportare tutte le tecnologie di visualizzazione di tipo "AbstractUrlBasedView".
AbstractJasperReportsView
, AbstractPdfStamperView
, AbstractTemplateView
, InternalResourceView
, RedirectView
, TilesView
, XsltView
sono sottoclassi noti di AbstractUrlBasedView
.
Quindi quando si utilizza UrlBasedViewResolver
è possibile utilizzare una qualsiasi delle sottoclassi di AbstractUrlBasedView
come tipo di tecnologia di visualizzazione (impostando solo viewClass corrispondente).
InternalResourceViewResolver è una sottoclasse di UrlBasedViewResolver
.
Ma quando si utilizza InternalResourceViewResolver
, (che è una comoda sottoclasse di UrlBasedViewResolver
), è possibile utilizzare solo la tecnologia di tipo InternalResourceView
come tecnologia per la vista.
Penso che questo risponda alla tua domanda.
InternalResourceViewResolver
è infatti sottoclasse di UrlBasedViewResolver
.
UrlBasedViewResolver
- Il nome di vista viene risolto direttamente su un URL. Non viene fornita alcuna mappatura esplicita. Il nome di visualizzazione è l'URL stesso oppure è possibile aggiungere uno prefix
o suffix
come da progetto.Puoi anche aggiungere un prefisso come "redirect:" e "forward:" per reindirizzare e inoltrare la richiesta.
InternalResourceViewResolver
- Sottoclasse di UrlBasedViewResolver che supporta InternalResourceView. Un InternalResourceView
include JSP o altre risorse della stessa app Web. Puoi accedere ai modelli nel JSP usando EL.
NOTA: Alcuni URLBasedViewResolvers (Tiles, Velocity, Freemarker) controllano se la risorsa esiste e restituisce null. Quindi possono essere ovunque nella catena del resolver di visualizzazione. Gli altri devono essere gli ultimi (JSTL/JSP, XSLT, JSON)
Quindi InternalResourceViewResolver
deve essere l'ultimo dei resolver della catena di vista poiché risolve il nome della vista se la risorsa effettiva è presente o meno.
Qualche altro URLBasedViewReolver s sono
- InternalResourceViewResolver
- VelocityViewReolver
- FreeMarkerViewReolver
- ThymeleafViewResolver
- XsltViewReolver
- 1. Che differenza tra Jersey vs JAX-RS
- 2. Differenza tra DataContractSerializer vs XmlSerializer
- 3. differenza tra session.evict vs chiaro
- 4. Differenza tra document.hidden vs document.hasFocus()
- 5. Differenza tra "get' VS 'getProperty'
- 6. Differenza tra oracle.sql.BLOB.DURATION_CALL vs oracle.sql.BLOB.DURATION_SESSION
- 7. Differenza tra NSWindowController Vs NSViewController
- 8. Differenza tra carico vs DOMContentLoaded
- 9. Seq.iter vs per - che differenza?
- 10. differenza tra grep Vs cat e grep
- 11. Differenza tra randint casuale vs randrange
- 12. Differenza tra :: class vs :: className() in Yii2?
- 13. Differenza tra io.open vs open in python
- 14. Differenza tra variabili linux $ BASH_SUBSHELL vs $ SHLVL
- 15. Differenza tra IIS 6.0 vs IIS 7.0
- 16. Differenza tra sé debole vs sé debole()
- 17. Differenza tra Locale FRANCESE vs FRANCE Locale
- 18. SQL: Differenza tra "BETWEEN" vs "current_date - number"
- 19. Differenza tra javax.servlet-api.jar vs servlet-api.jar
- 20. Differenza tra Spring JDBC Vs Plain JDBC?
- 21. Qual è la differenza tra colorWithSRGBRed vs colorWithDeviceRed vs colorWithCalibratedRed
- 22. Differenza tra AlertDialog.builder's obj.create() vs obj.show() vs obj.create(). Show()
- 23. iPhone: Differenza tra nil vs Nil e vero vs TRUE
- 24. differenza tra i386: x64-32 vs i386 vs i386: x86_64
- 25. InternalResourceViewResolver per risolvere insieme jsp e html
- 26. dataset vs .data - Differenza?
- 27. Che differenza c'è tra cacerts e keystore
- 28. Che differenza c'è tra console.log e console.dir?
- 29. Che differenza c'è tra `DialogInterface.dismiss()` e `DialogInterface.cancel()`?
- 30. Che differenza c'è tra HashMap e HashMultimap