2011-01-24 12 views
6

Sto iniziando a creare applicazioni Web in Spring 3 (e in J2EE) in generale. Guardando all'esempio di pet-pin, ho visto che il programmatore crea molti pezzi JSP, come l'intestazione, include, piè di pagina e poi li unisce insieme usando l'inclusione statica. In ogni caso quello che vorrei è che io possa avere una pagina di base, come Base.jsp ed essere in grado di includere cose come questa:Inserimento dinamico e dinamico di file JSP

<body> 
<jsp:include page="${subpage}"></jsp:include> 
</body> 

il motivo è che mi piacerebbe una pagina principale, quindi essere in grado di mettere nel ModelAndView restituito dal controller quali parti delle pagine vengono visualizzate in ogni situazione (con i dati ad essa associati). Funziona, ma non dà errori nel caso non sia stato trovato ${subpage}, il nome jsp è sbagliato o mancante. Mi piacerebbe più controllo degli errori ...

È questo il modo migliore e consigliato per farlo? E se questa sembra una buona idea per quello che ho in mente, qual è il modo corretto di farlo?

risposta

1

Sembra che ci siano citazioni aggiuntive nel numero subpage. Sbarazzati di loro. Per esempio:

<c:set var="subpage" value="/jsp/index.jsp" /> 

Se è necessario impostare in un controller o servlet - basta usare request.setAttribute("subpage", "/jsp/index.jsp")

+0

impossibile, la sottopagina viene modificata in una classe controller. Adesso puoi impostarlo dal JSP. – gotch4

+0

Ho modificato la domanda ... controllala – gotch4

0

per il controllo degli errori è possibile utilizzare:

<c:catch var="myException"> 
    <c:import url="${subpage}" /> 
</c:catch> 

e poi si può controllare con :

<c:if test="${myException != null}"> 
... 
</c:if> 
0

Dai un'occhiata a Sitemesh (http://www.opensymphony.com/sitemesh). È un sistema di impaginazione basato su un filtro servlet facile da usare. Ho fatto un certo numero di progetti utilizzandolo con Spring MVC e ha funzionato molto bene.

Problemi correlati