tag sintaxis otro metodos importar directivas jsp

sintaxis - metodos en jsp



Incluir otro archivo JSP (5)

Actualmente estoy tratando de aprender JSP. Mi pregunta es, en este momento solía incluir el encabezado y pie de página de la página usando:

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

y

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

Pero ahora, he separado el contenido de la página también. Entonces, si el usuario hace clic en una página, digamos productos, tiene que cargar el archivo JSP que se encuentra en: includes/pages/products.jsp Entonces, el enlace al usuario es como: <a href="index.jsp?p=products">Products</a> .

Entonces, tengo que obtener el valor de p y mostrar la página en función de él.

Lo siguiente es lo que he hecho hasta ahora.

<% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <%@include file="includes/page_name.jsp" %> <% } %>

Entonces, ¿cómo coloco el valor de la variable "p" en la posición de "page_name"?

O, ¿hay algún otro método que pueda usar?

En PHP, podríamos usar include() o include_once() . Estoy un poco atrapado en esta JSP. :(


1. <a href="index.jsp?p=products">Products</a> cuando el usuario hace clic en el enlace Productos, puede llamar directamente a products.jsp.

Quiero decir que puedes mantener el nombre del archivo JSP igual que el parámetro Valor.

<% if(request.getParameter("p")!=null) { String contextPath="includes/"; String p = request.getParameter("p"); p=p+".jsp"; p=contextPath+p; %> <%@include file="<%=p%>" %> <% } %>

o

2. puede mantener el archivo de recursos externo con clave, pares de valores. como abajo

products : products.jsp

customer : customers.jsp

puede recuperar programáticamente el nombre del archivo JSP del archivo de propiedades.

De esta manera, puede cambiar fácilmente el nombre del archivo JSP


En el momento de la traducción de la página, el contenido del archivo proporcionado en la directiva de inclusión se ''pega'' tal como está, en el lugar donde se utiliza la directiva de inclusión de JSP. Luego, la página fuente JSP se convierte en una clase de servlet java. El archivo incluido puede ser un recurso estático o una página JSP. Generalmente, la directiva de inclusión JSP se usa para incluir encabezados y pie de página.

Sintaxis para incluir un archivo jsp:

<%@ include file="relative url">

Ejemplo

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


Lo que estás haciendo es una inclusión estática. Una inclusión estática se resuelve en tiempo de compilación y, por lo tanto, no puede usar un valor de parámetro, que solo se conoce en el momento de la ejecución.

Lo que necesita es una dinámica incluyen:

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

Tenga en cuenta que debe usar JSP EL en lugar de scriptlets. También parece que está implementando un controlador central con index.jsp. Debería usar un servlet para hacer eso en su lugar, y enviarlo al JSP apropiado desde este servlet. O mejor, utilice un marco MVC existente como Stripes o Spring MVC.


Puedes usar Incluir Directivas

<% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <%@include file="<%="includes/" + p +".jsp"%>"%> <% } %>

o JSP Include Action

<% if(request.getParameter("p")!=null) { String p = request.getParameter("p"); %> <jsp:include page="<%="includes/"+p+".jsp"%>"/> <% } %>

la directiva include es diferente incluye un archivo durante la fase de traducción. mientras que JSP Include Action incluye un archivo en el momento en que se solicita la página

Recomiendo Spring MVC Framework como su controlador para manipular cosas. usa el patrón url en lugar del parámetro.

ejemplo:

www.yourwebsite.com/products

en lugar de

www.yourwebsite.com/?p=products

Mira este video Spring MVC Framework


Puedes usar parámetros como ese

<jsp:include page=''about.jsp''> <jsp:param name="articleId" value=""/> </jsp:include>

y

en about.jsp puedes tomar el parámetro

<%String leftAds = request.getParameter("articleId");%>