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>