practica utilizacion de beans en jsp
TRANSCRIPT
UTILIZACION DE BEANS EN JSP.
1. Crear un proyecto WebApplication y guardarlo con el nombre de Bean
2. Para la creación del Bean es necesario ubicarse dentro del proyecto en la carpeta Sources Packages.(puede crear paquetes con la agrupación de clases en común o aplicar el concepto de capas recordar 3 capas 1.interfaz grafica 2. Logica del Negocio 3. Acesso a Datos)
3. Dentro del paquete crear una clase, dicha clase será el beans a utilizar, recordar que un bean es un objeto en el cual se definen los atributos, el método constructor debe ser vacio y se debe encapsular el objeto. Nota Se pueden crear tantos beans como sean necesarios.
Ejemplo de bean asignatura
public class asignatura { public String Nombre; public double nota;
public void asignatura(){}
public String getresultado (){ if (nota <3) return "Reprueba" ; else return "Aprueba";}
public String getNombre() { return Nombre;}
public void setNombre(String Nombre) { this.Nombre = Nombre;}
Public double getNota() { return nota;} public void setNota(double nota) { this.nota = nota;}
}
Ejemplo de bean Persona
public class Persona { protected String Apellido; protected String Nombre; protected String Id; protected String Sexo; protected int Edad; public Persona() { }
public Persona(String Apellido, String Nombre, String Id, String Sexo, int Edad) { this.Apellido=Apellido; this.Nombre=Nombre; this.Edad=Edad; this.Sexo=Sexo; this.Id=Id; } public String getApellido() { return Apellido; }
public void setApellido(String Apellido) { this.Apellido = Apellido; } public String getNombre() { return Nombre; } public void setNombre(String Nombre) { this.Nombre = Nombre; } public String getId() { return Id; } public void setId(String Id) { this.Id = Id; } public String getSexo() { return Sexo; } public void setSexo(String Sexo) { this.Sexo = Sexo; } public int getEdad() {
return Edad; } public void setEdad(int Edad) { this.Edad = Edad; } }
4. Para utilizar el bean, es necesario crear un formulario para que el usuario suministre los datos, por lo cual se crea un archivo jsp y se guarda como el index, como es un formulario este debe contener un botón de enviar o procesar y adicional indicarle o definir la pagina que procesa el formulario y el método de envio, hemos trabajado en anteriores ejercicios con proceso.jsp, por lo cual después del incio del body del archivo index se escribe <form action="proceso.jsp" method="post">.
A continuación código html para formulario.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> Formulario Principal</title> </head> <body> <form action="proceso.jsp" method="post">
Nombre: <input type="text" name="nombre"><br/>Apellido: <input type="text" name="apellido"><br/>Nota: <input type="text" name="Nota">
<br/><p><input type="submit" value="Enviar"></p>
</form> </body></html>
5. Para el procesamiento del formulario se debe crear un nuevo archivo jsp que debemos llamar proceso.jsp
La intención es utilizar la funcionalidad del beans dentro de proceso.jsp, por lo cual debemos instanciar el objeto a utilizar esto se logra por medio de la directiva jsp:useBean
<jsp:useBean id="nota" scope="page" class="objeto.asignatura">
Donde
el usebean sirve para instanciar el objeto
el id es para identificar el objeto instanciado dentro del jsp
el Scope es para definir el ambito o accesibilidad del objeto instanciado
opciones del Scope page | request | session | application
la class es para indicar la ruta de ubicacion del objeto ainstanciar
indicar ruta paquete...subpaquete.clase.class
Se pueden crear variables para almacenar temporalmente lo que se captura en el formulario mediante el objeto implícito request
<% int not=(Integer.parseInt(request.getParameter("Nota")));%>
<% String ape=(String)request.getParameter("Apellido");%>
Se utiliza setProperty para guardar el valor dentro del atributo del objeto instanciado
<jsp:setProperty name="id_del_objeto" property="nombre_propiedad"|"*"param="nombre_parametro_de_request" | value="valor" />
Con value podemos especificar un valor para la propiedad, pero esta etiqueta es incompatible con param.
en este caso
<jsp:setProperty name="nota" property= "nota"></jsp:setProperty>
Se guarda el valor dentro del atributo deseado del objeto instanciado
<%
nota.setNota(not);
%>
Para consultar el valor almacenado dentro del objeto instanciado
<jsp:getProperty name="nota" property= "nota"></jsp:getProperty>
Se pueden utilizar los metodos creados para colocar y visualizar el valor de los atributos, pero como es una instancia tambien se pueden consultar las propiedades del objeto instanciado ejemplos :
El nombre de La clase
<%=nota.getClass().getName()%>
El nombre de la instancia
<%=nota.getClass().getSuperclass()%>
El valor insertado mediante el método set
<%= nota.getNota()%>
Si se desea consultar otro atributo del objeto
<jsp:getProperty name="nota" property= "resultado"></jsp:getProperty>
<%nota.getresultado(); %>
Codigo completo para proceso.jsp
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1> TRABAJANDO CON LOS BEANS </h1> <jsp:useBean id="personas" scope = "page" class="objeto.Persona"> <jsp:setProperty name="personas" property="apellido"></jsp:setProperty> <% String ape=(String)request.getParameter("apellido");%> <% personas.setApellido(ape);%> <jsp:setProperty name="personas" property="nombre"></jsp:setProperty>
<% String nom=(String)request.getParameter("nombre");%> <% personas.setNombre(nom);%> </jsp:useBean> La persona <jsp:getProperty name= "personas" property="apellido" /> <jsp:getProperty name= "personas" property="nombre" /> <br> saco un nota definitiva de : <jsp:useBean id="nota" scope="page" class="objeto.asignatura"> <% int not=(Integer.parseInt(request.getParameter("Nota")));%> <jsp:setProperty name="nota" property= "nota"></jsp:setProperty> <% nota.setNota(not); %> <jsp:getProperty name="nota" property= "nota"></jsp:getProperty> <jsp:getProperty name="nota" property= "resultado"></jsp:getProperty> la Asignatura <br> <%nota.getresultado(); %> <br> DATOS DE LA INSTANCIA DEL OBJETO ASIGNATURA <br> <p>Hemos creado una instancia del JavaBean.<br> La clase se llama <%=nota.getClass().getName()%> <p> El nombre de la instancia es <%=nota.getClass().getSimpleName()%> </p> La jerarquia de la instancia es <%=nota.getClass().getSuperclass()%> <br> </jsp:useBean> </body></html>