2013-10-13 12 views
11

Nella mia progettazione di applicazioni Web sono presenti molte aree comuni, ad esempio piè di pagina, barra laterale dell'intestazione, blocchi ... ecc. E si passa attraverso tutti i file JSP dell'applicazione per modificare qualcosa ad esempio in l'intestazione è piuttosto caotica, quindi mi chiedevo se posso creare qualcosa come file modello per aree comuni come ad esempio template di intestazione, template di sidebar, template di footer, quindi posso includere tali template in qualsiasi JSP all'interno della mia applicazione?Modelli in un'applicazione web MVC primaverile

Sto usando framework Spring MVC per costruire la mia domanda

+1

Dai un'occhiata alle piastrelle Apache: http://tiles.apache.org/framework/index.html – Jk1

+0

@ Jk1 Grazie mille, sembra fantastico ma stavo cercando qualcosa di più semplice da implementare. In altre parole, come applicarlo direttamente nell'applicazione senza alcun framework aggiuntivo, pensi che sia possibile? – MChan

+0

C'è un approccio più semplice, in effetti. Incapsulare il contenuto dell'intestazione/piè di pagina nel tag JSP personalizzato. Non sono necessari ulteriori framework/librerie. Ecco il manuale: http://docs.oracle.com/javaee/5/tutorial/doc/bnama.html – Jk1

risposta

11

Per quanto riguarda templating sono disponibili le seguenti opzioni:

  1. personalizzati JSP tag. Questi tag possono esistere come classi Java o snippet JSP e fornire una funzionalità di base per incapsulare e riutilizzare parti di pagine JSP (intestazioni, piè di pagina, ecc.). Vedere di più in this manual

  2. Modelli di motori come Tiles o decoratori come Sitemesh. Sono abbastanza potenti nella creazione di layout di pagina complessi.

Se siete alla ricerca di temi dell'interfaccia utente personalizzati supporto si prega di dare un'occhiata a custom themes support in Spring MVC.

+0

Sitemesh non è un motore di template. È un decoratore. – Bart

+0

Grazie, @ Bart, formalmente hai ragione. – Jk1

0

Idealmente sì, avete bisogno di creare file comuni invece di codice ridondante, perché potrebbe porta a molti cambiamenti se u vuole cambiare una sola cosa. Quindi prova ad usare sotto il codice in base alle tue esigenze.

<%@ include is a static include, <jsp:include is a dynamic include.

Un'altra soluzione: Come si sta utilizzando framework Spring provare ad utilizzare la ricerca piastrelle di primavera in google per ulteriori informazioni, per esempio SpringByExample

1

Se si vuole separare Intestazione, Piè di pagina e alcune altre cose comuni da il contenuto "reale", quindi è possibile utilizzare Apache Tiles.

È facile da integrare in primavera. Quindi ad esempio Spring Roo lo usa.

3

Ho usato Apache Tiles. Può essere facilmente integrato con Spring MVC. Puoi anche considerare l'utilizzo di sitemesh. Come lei ha ricordato modello di intestazione, piè di pagina modello si può avere modello base per intestazione, piè di pagina, il menu ed è possibile integrare nel modello di base,

Nota: è possibile avere solo jsp e non html qui.

Controlla questo collegamento per la primavera con le tessere.

http://www.springbyexample.org/examples/dynamic-tiles-spring-mvc-module.html

+1

Prima di utilizzare ricerca sitemash per un certo confronto di piastrelle e sitemash in StackOverflow. Ad esempio http://stackoverflow.com/questions/8565029/apache-tiles-alternatives – Ralph

Problemi correlati