Le contenu externe que nous souhaitons inclure peut être de deux natures :
un élément statique, tel qu'un élément de texte, une image, une bannière, etc...
un élément dynamique, tel qu'une autre page JSP, ou la sortie d'une servlet.
Dans ce deuxième cas, l'API JSP nous permet de définir cette inclusion au chargement de l'application, ou au moment de la requête, nous allons voir comment.
On utilise pour cela la directive suivante.
Exemple 5.14. Inclusion de contenu statique ou dynamique résolu au chargement de l'application
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <%@include file="image.jpg" %> <%@include file="copyright.jsp" %> </body> </html>
Dans les deux cas de notre exemple, le contenu inclus est résolu au chargement de l'application.
Lorsque le moteur de JSP crée la servlet associée à cette JSP, et qu'il la compile, une
référence vers l'image est créée, et le contenu du la page JSP copyright.jsp
est
inclus dans cette servlet.
Cet autre exemple indique comment incluer une page JSP dans une autre, au moment où la requête est traitée.
Exemple 5.15. Inclusion de contenu dynamique résolu au traitement de la requête
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <jsp:include page="copyright.jsp"> <jsp:param name="year" value="2010"/> </jsp:include> </body> </html>
Dans ce deuxième exemple, on inclut le contenu de la page copyright.jsp
dans
la page courant. De plus, avant d'invoquer cette page, on positionne un paramètre
sur la requête, dont le nom est year
, et la valeur 2010
. La
page copyright.jsp
peut prendre en compte ces paramètres exactement comme
s'ils avaient été positionnés par un formulaire (par exemple). Cette déclaration est bien sûr
factultative.