170 votes

Inclure un autre fichier JSP

Je suis en train d'essayer d'apprendre JSP. Ma question est, à présent, j'ai utilisé pour inclure l'en-tête et pied de page de la page à l'aide de:

<%@include file="includes/header.jsp" %>

et

<%@include file="includes/footer.jsp" %>

Mais maintenant, j'ai séparé le contenu de la page aussi. Donc, si l'utilisateur clique sur une page, dire des produits, il doit charger le fichier JSP qui est situé dans: includes/pages/products.jsp Donc, le lien pour l'utilisateur, c'est comme: <a href="index.jsp?p=products">Products</a>.

Donc, je dois obtenir la valeur de p et l'affichage de la page en fonction de cela.

Voici ce que j'ai fait jusqu'à présent.

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<%@include file="includes/page_name.jsp" %>

<% 
 }
%>

Alors, comment dois-je placer la valeur de la variable "p" dans la position de "page_name" ?

Ou, est-il une autre méthode que je pourrais utiliser ?

En PHP, on peut utiliser l' include() ou include_once(). Je suis un peu coincé dans cette JSP. :(

Merci à l'avance. :)

251voto

JB Nizet Points 250258

Ce que vous faites est statique inclure. Statique est résolu au moment de la compilation, et ne peut donc pas utiliser la valeur d'un paramètre, qui n'est connue qu'au moment de l'exécution.

Ce que vous avez besoin est une dynamique comprennent:

<jsp:include page="..." />

Notez que vous devez utiliser les JSP EL plutôt que de les scriptlets. Il semble aussi que vous êtes à la mise en œuvre d'un contrôleur central, avec index.jsp. Vous devez utiliser une servlet pour le faire à la place, et l'expédition à l'appropriées JSP à partir de cette servlet. Ou mieux, utiliser un framework MVC comme les Rayures ou de Spring MVC.

27voto

vitralyoz Points 15

Vous pouvez utiliser des paramètres comme ça

et

dans about.jsp, vous pouvez prendre le paramètre

18voto

Vous pouvez utiliser les Directives d'

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<%@include file="<%="includes/" + p +".jsp"%>"%>

<% 
 }
%>

ou JSP comprendre l'Action

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<jsp:include page="<%="includes/"+p+".jsp"%>"/>

<% 
 }
%>

la différence est d'inclure la directive inclut un fichier au cours de la phase de traduction. alors que les JSP comprendre l'Action inclut un fichier à la demande de la page

Je recommande Spring MVC Framework comme votre contrôleur de manipuler les choses. l'utilisation de modèle d'url à la place du paramètre.

exemple:

www.yourwebsite.com/products

au lieu de

www.yourwebsite.com/?p=products

Regardez cette vidéo Spring MVC

12voto

At JSP page translation time, the content of the file given in the include directive is ‘pasted' as it is, in the place where the JSP include directive is used. Then the source JSP page is converted into a java servlet class. The included file can be a static resource or a JSP page. Generally JSP include directive is used to include header banners and footers. 
 Syntax for include a jsp file 
<%@ include file="relative url">
Example
<%@include file="page_name.jsp" %>

6voto

Balaswamy Vaddeman Points 2737
  1. `` lorsque l’utilisateur clique sur le lien produits, vous pouvez appeler directement products.jsp.

Je veux dire vous pouvez maintenir le nom du JSP du fichier même en tant que paramètre de valeur.

ou

  1. vous pouvez conserver le fichier de ressources externe avec paires de clés, valeur. comme ci-dessous

``

``

vous pouvez par programmation récupérer le nom du fichier JSP de fichier properies.

de cette façon que vous pouvez facilement changer le nom du fichier JSP

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X