prucommercialre.com


Hacer sus diseños de página más fácil con Incluye

Una página JSP de muestra que está lleno de oportunidades para refactorización - reescribir porciones de código para hacer que el código resultante más simple, más fácil de leer, y más eficiente - se muestra en el Listado 1.

Ficha 1 Muestra la página JSP, refactor.jsp

1 <! - Comenzar las definiciones taglib ->
2 <% @ taglib prefix = "c" uri = "/ WEB-INF / c.tld"%>
3 <% @ taglib prefix = "fmt" uri = "/ WEB-INF / fmt.tld"%>
4 <% @ taglib prefix = "html"
uri = "/ WEB-INF / struts-html-el.tld"%>
5 <! - Terminar las definiciones taglib ->
6 <html: html locale = "true" />
7 <head>
8 <fmt: setBundle basename = "ApplicationResources" />
9 <title> <fmt: message key = "login.title" /> </ title>
10 </ head>
11 <body>
12 <! - Comenzar el logo de la aplicación ->
13 <table width = "100%">
14 <tr valign = "top" align = "center">
15 <td>
16 <img src = "images / webLogo.gif"
name = "WebLogo"
width = "425" height = frontera "50" = "0">
17 </ td>
18 </ tr>
19 </ table>
20 <! - Fin del logo ->
21 <h2>
22 <fmt: message key = "loggedin.msg">
23 <fmt: valor param = '$ {requestScope.userName}' />
24 </ fmt: message>
25 </ h2>
26 <! - Comenzar el pie de página de la aplicación ->
27 <div align = "center">
28 <hr size = ANCHO "1" = "100%"> <br/>
29 Preguntas o comentarios?
30 <a href='mailto:[email protected]'>
Email Othenos Atención al cliente </a> <br/>
31 2003 <br/> Othenos Consulting Group
32 </ div>
33 <! - Fin del pie de página ->
34 </ body>
35 </ html>

Al examinar la distribución por página en el Listado 1, tres áreas se destacan como las posibilidades de contenido común:

  • Las definiciones de los taglibs entre las líneas 1 y 5
  • El logotipo insertado en las líneas 12-20
  • La sección de pie de página en las líneas 26-33

Se puede suponer que otras páginas de la aplicación Web son similares en estructura - que incluyen las mismas definiciones taglib, logotipo, gráficos e información de pie de página. Debido a que estos fragmentos de código son comunes a muchas otras páginas, puede simplificar el código mucho quitando estas secciones repetidas y ponerlas en sus propios archivos separados. Luego las páginas originales que contenían los fragmentos podrían hacer referencia a este contenido utilizando el directiva include y jsp: include tag.

Puede extraer las características comunes y ponerlos en tres archivos separados, como se muestra en los listados 2, 3 y 4.

Listado 2 taglibs.jsp

<% @ Taglib prefix = "c" uri = "/ WEB-INF / c.tld"%>
<% @ Taglib prefix = "fmt" uri = "/ WEB-INF / fmt.tld"%>
<% @ Taglib prefix = "html" uri = "/ WEB-INF / struts-html-el.tld"%>
<% @ Taglib prefix = "azulejos" uri = "/ WEB-INF / struts-tiles.tld"%>

Listado 3 logo.jsp

<Table width = "100%">
<Tr valign = "top" align = "center">
<Td>
<Img src = "images / webLogo.gif" name = "WebLogo"
width = "425" height = frontera "50" = "0">
</ Td>
</ Tr>
</ Table>

Listado 4 footer.jsp

<Div align = "center">
<Hr size = ANCHO "1" = "100%"> <br/>
Preguntas o comentarios?
<a href='mailto:[email protected]'>
Email Othenos Atención al cliente
</a> <br/>
2003 <br/> Othenos Consulting Group
</ Div>

Puede utilizar tres elementos para insertar contenido fuera en una página JSP: la directiva include, el jsp: include etiqueta, y la JSTL c: Etiqueta de importación.

El JSP directiva include permite la inserción de contenido estático en la página JSP en el momento que la página se convierte en una clase Java por el motor JSP. Esta directiva tiene la siguiente sintaxis:

<% @ Include file = "relativeURLspec"%>

Aspectos destacados del seguimiento etiqueta:

  • La etiqueta puede colocar contenido sólo estático en un archivo JSP, como un archivo HTML o JSP.
  • La etiqueta se procesa solamente cuando JSP se convierte en una clase Java, no en tiempo de petición.
  • Si se actualiza el archivo incluido, contenedores JSP no son necesarios para cambiar la página convertida para incluir nuevos contenidos.

El Listado 2 muestra el uso de la directiva include para insertar el segmento taglibs.jsp en la página loggedin.jsp. Debe incluir el taglibs.jsp en la página antes de la página se convierte en la clase Java porque las etiquetas que la página usos (html, c, fmt, azulejos) requieren la definición de la biblioteca antes de que ocurra la conversión. La definición de la biblioteca está en el archivo taglibs.jsp. Inserción taglibs.jsp durante la petición sería demasiado tarde. He aquí cómo usted insertarlo antes de que se convirtió a la página:

<! - Comenzar las definiciones taglib ->
<% @ Include file = "taglibs.jsp"%>
<! - Terminar las definiciones taglib ->

Para incluir contenido en el momento de la solicitud, puede utilizar el jsp: include tag. Esta etiqueta puede insertar contenido estático y dinámico en la página cuando se solicita la página. La siguiente es la sintaxis para jsp: include:

<Jsp: include page = "relativeURLspec" flush = "true | false" />

Lo más destacado de la etiqueta son las siguientes:

  • La etiqueta puede incluir estático (por ejemplo, HTML) o dinámica (por ejemplo, JSP) contenido.
  • Las inclusiones se procesan durante la petición.
  • Puede pasar parámetros a los contenidos incluidos.
  • El contenedor JSP es consciente cuando cambia de recursos incluidos y genera nuevos contenidos basados ​​en el nuevo archivo.
  • El rubor de atributos por defecto falso. Si es verdadero, indica que la página, si amortiguada, se debe lavar (escrito) antes de incluir el nuevo recurso.

Los segmentos logo.jsp y footer.jsp (anuncios 3 y 4) son candidatos para la inclusión con el jsp: include tag. Aquí es cómo se verían si las incluye con jsp: incluyen:

<! - Comenzar el logo de la aplicación ->
<Jsp: include page = "logo.jsp" flush = "true" />
<! - Fin del logo ->
<! - Comenzar el pie de página de la aplicación ->
<Jsp: include page = "footer.jsp" flush = "true" />
<! - Fin del pie de página ->

Es posible que desee utilizar el c: Etiqueta de la importación de la biblioteca JSTL vez de jsp: include. El c: Etiqueta importación pretende reducir algunas de las ineficiencias tampón se encuentran en el jsp: include tag. Otra característica de la etiqueta es su capacidad para recuperar recursos desde cualquier URL. El jsp: include etiqueta es limitado a los recursos en el mismo contexto que la página actual. La sintaxis más simple para el c: Etiqueta de importación es

<C: url import = "url" />

He aquí cómo usted puede utilizar el directorio c: etiqueta de importación en vez de jsp: include en el ejemplo anterior:

<! - Comenzar el logo de la aplicación ->
<C: import url = "logo.jsp" />
<! - Fin del logo ->
<! - Comenzar el pie de página de la aplicación ->
<C: import url = "footer.jsp" />
<! - Fin del pie de página ->

Usted puede usar c: importación o jsp: include indistintamente, dependiendo de las librerías de etiquetas que usted prefiera.

En el Listado 5 se muestra cómo el JSP originales en el Listado 1 se ocupa de refactorización y utilizando incluye para recuperar la información común. Utilizamos el directorio c: etiqueta de importación para la inclusión, con la excepción de la inclusión de la taglibs.jsp (línea 2) Taglibs.jsp debe incluirse cuando la página se convierte en una clase Java porque otras etiquetas en la página dependen de la biblioteca de etiquetas. definiciones encontradas en taglibs.jsp. Por tanto, la directiva include JSP debe ser utilizado.

Listado 5 simplificado JSP Usando incluye

1 <! - Comenzar las definiciones taglib ->
2 <% @ include file = "taglibs.jsp"%>
3 <! - Terminar las definiciones taglib ->
4 <html: html locale = "true" />
5 <head>
6 <! - Empezar la cabecera de la aplicación ->
7 <fmt: setBundle basename = "ApplicationResources" />
8 <title> <fmt: message key = "login.title" /> </ title>
9 <! - Final de cabecera ->
10 </ head>
11 <body>
12 <! - Comenzar el logo de la aplicación ->
13 <c: url import = "logo.jsp" />
14 <! - Fin del logo ->
15 <H2>
16 <fmt: message key = "loggedin.msg">
17 <fmt: valor param = '$ {requestScope.userName}' />
18 </ fmt: message>
19 </ H2>
20 <! - Comenzar el pie de página de la aplicación ->
21 <c: url import = "footer.jsp" />
22 <! - Fin del pie de página ->
23 </ body>
24 </ html>

Usted puede utilizar incluye refactorizar todas las páginas JSP en la aplicación que tiene una estructura similar. De esta manera, se reduce drásticamente la cantidad de esfuerzo necesario para realizar cambios en las partes comunes de las páginas porque es necesario para editar más de una copia de cada segmento común. Cualquier cambio en el contenido común ondula automáticamente a través de cada página que incluye el segmento.