Download e) Etiquetas personalizadas
Document related concepts
no text concepts found
Transcript
PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project… PASO 2: En categorías seleccionamos Java Web y en projects Web Application. PASO 3: En el siguiente paso debemos rellenar varios campos. Project Name: PPRTag01. Project Folder, Project Location: Aceptamos las sugeridas. Use Dedicated Folder for Storing Libraries: No Set as Main Project: Si Next > PASO 4: A continuación deberemos configurar el Server. Add to Enterprice Application: None Server: GlassFish V3.1.2 o superiors. Use dedicated Library for folder for server jar files: No Java EE version: Jave EE 5 Context Path: /PPRTag01 < Finish > Estructura del proyecto Esta debe ser la estructura final de nuestro proyecto Archivo MisTags.tld Crear: Nuevo archivo Web Tag Library Descriptor Ubicación: WEB-INF/tlds/MisTags.tld <?xml version="1.0" encoding="UTF-8"?> <taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"> <tlib-version>1.0</tlib-version> <short-name>mistags</short-name> <uri>/WEB-INF/tlds/MisTags</uri> <tag> <name>BadTimeTag</name> <tag-class>mi.BadTimeTag</tag-class> <body-content>empty</body-content> <attribute> <name>nombre</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>filas</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>columnas</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib> Archivo web.xml Creación: Se crea por defecto, aunque quizás haya que modificar el contenido y dejarlo de la siguiente manera. Ubicación: WEB-INF/web.xml Web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> Archivo BadTimeTag.java Creación: New File, Web, Tag Handler. En la opción Body content, nos aparecerá en la pantalla llamada TLD Information, debemos escoger la opción Empty. Ubicación: Sources packages/mi/BadTimeTag.java BadTimeTag.java package mi; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * * @author Alumno */ public class BadTimeTag extends SimpleTagSupport { /** * Called by the container to invoke this tag. The implementation of this * method is provided by the tag library developer, and handles all tag * processing, body iteration, etc. */ private int filas = 0; private int columnas = 0; private String nombre = ""; @Override public void doTag() throws JspException { JspWriter out = getJspContext().getOut(); try { JspFragment f = getJspBody(); if (f != null) { f.invoke(out); } out.println("Nombre:" + nombre + "<br/>"); out.println("Filas:" + filas + "<br/>"); out.println("Columnas: "+ columnas + "<br/>"); String tabla = "<table border='1'>"; if(filas <= 10 && columnas <= 10) { for(int i = 0;i < filas;i ++) { tabla += "<tr>"; for(int j = 0; j < columnas;j++) { tabla += "<td>" + j + "<td>"; } tabla += "</tr>"; } tabla += "</table>"; out.println(tabla); } else { out.println("El numero de filas y columnas debe ser menor a 10"); } } catch (java.io.IOException ex) { throw new JspException("Error in BadTimeTag tag", ex); } } public int getFilas() { return filas; } public int getColumnas() { return columnas; } public void setFilas(int filas) { this.filas = filas; } public void setColumnas(int columnas) { this.columnas = columnas; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } } Archivo index.jsp Creación: Viene creado por defecto, debemos modificar el código añadiendo lo que se muestra a continuación. Ubicación: Web Pages Index.jsp <%-Document : index Created on : 06-jul-2009, 20:26:52 Author : Pablo --%> <%@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>Mi biblioteca de tags</title> </head> <body> <form action="procesar.jsp"> <table> <tr> <td>Nombre</td> <td><input type="text" name="nombre" /></td> </tr> <tr> <td>Filas</td> <td><input type="text" name="filas" /></td> </tr> <tr> <td>Columnas</td> <td><input type="text" name="columnas" /></td> </tr> </table> <input type="submit" value="Enviar"/> </form> </body> </html> Archivo procesar.jsp Creación: Botón derecho sobre el directorio Web Pages y seleccionamos la opción JSP… Ubicación: Web Pages Procesar.jsp <%-Document : procesar Created on : 06-mar-2013, 11:27:48 Author : pablo --%> <%@taglib prefix="MisTags" uri="/WEB-INF/tlds/MisTags"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Procesar</title> </head> <body> <% int nFilas = Integer.parseInt(request.getParameter("filas")); int nColumnas = Integer.parseInt(request.getParameter("columnas")); String miNombre = request.getParameter("nombre"); %> <MisTags:BadTimeTag nombre="<%=miNombre%>" filas="<%=nFilas%>" columnas="<%=nColumnas%>"></MisTags:BadTimeTag> </body> </html>