2009-07-06 4 views
5

Avrò un singolo sito che deve essere tematizzato in vari modi. Voglio estrarre le informazioni del tema da un database per evitare di dover ridistribuire ogni volta che è necessario un nuovo tema. Ho letto che puoi creare un'implementazione di ThemeSource personalizzata ma non sei sicuro di come implementare un'origine dei temi basata su database. Qualcuno ha esperienza con questo in Spring MVC?Come caricare temi dal database in Spring MVC?

risposta

2

È semplice.

Spring Controller, nessun filtro: i controller sono più facili da cablare.

  • Semplifica il tema (un file css, un file js, un paio di immagini).

  • Creare un tema e una tabella di temi sorgente nel database. il tema contiene theme_id, theme_name, theme_description. themeresource contiene resource_id, theme_id, name, content (blob). (Userei Hibernate)

  • Creare un DAO per l'accesso a tema (mi piacerebbe utilizzare Hibernate)

  • Creare un controller chiamato ThemeController. Mappalo su "/ tema/risorse".

  • Nel controller leggere la richiesta, vedere quale file richiede (ad es .: "/theme/resources/style.css").

  • Sai già quale tema è richiesto a causa della ThemeResolver

  • Servire il file "style.css" (e tutti gli altri file) dal database interrogando il DAO con il tema e il nome della risorsa

Un'altra opzione sarebbe quella di creare un listener/filtro che faccia esattamente ciò che il controller precedente dovrebbe fare.