03
May
10

USEBEAN SETPROPERTY GETPROPERTY en JSP

Al momento de usar beans en jsp existen ciertas propiedades de este que nos facilitan el trabajo unas de estas son USEBEAN, SETPROPERTY, y la GETPROPERTY, para que el SETPROPERTY funcione hay que tener en cuenta que el enctype del formulario debe estar especificado como enctype=”application/x-www-form-urlencoded”

utilizando el mismo ejemplo anterior

la estructura del proyecto seria algo como asi

tenemos 2 paginas:

index.jsp

<html>
<head>
<title>HOLA USO DE USEBEAN SETPROPERTY  GETPROPERTY</title>
<style type="text/css"><%@ include file="estilo.css"%></style>
</head>
<body bgcolor="#FFFFFF">
<form  name="f2"  action="proceso.jsp" method="post" enctype="application/x-www-form-urlencoded">
	numero1:<input type="text" name="numero1"><br/>
	numero2:<input type="text" name="numero2"><br/>
	<!-- varios checkbox con el mismo nombre "operacion" -->
	<input type="checkbox" name="operacion" value="suma">Suma<br/>
	<input type="checkbox" name="operacion" value="resta">Resta<br/>
	<input type="checkbox" name="operacion" value="multiplicacion">Multiplicacion<br/>
	<input type="checkbox" name="operacion" value="division">Division<br/>
	<input type="checkbox" name="operacion" value="residuo">Residuo<br/>
	<input type="submit" value="Calcular" >
</form>
</body>
</html>

y el codigo interesante

proceso.jsp

<html>
<head>
<title>HOLA USEBEAN SETPROPERTY GET PROPERTY</title>
<style type="text/css"><%@ include file="estilo.css"%></style>
</head>
<body>
<!--jsp:useBean es analogo a declarar una variable diferencia es que el scope (alcance)  -->
<!--lo definimos nosotros, ¿como asi?-->
<!--osea si la guardamos en la session, aplication o solo la usamos en esta pagina -->
<!--scope="page"  -  solo en esta pagina -->
<!--scope="session"  -  solo en esta sesion -->
<!--scope="aplication"  -  solo en toda la aplicacion -->

<jsp:useBean id="o" scope="page" class="ejercicio07.Operacion"/>

<!--jsp:setProperty es una forma de hacer set a uno o todos los campos de un bean-->
<!--se puede hacer de 2 maneras una es cuando los datos vienen en un formulario -->
<!--y tienen los mismos nombres de las variables en los beans -->
<!-- la otra forma seria jsp : setProperty name="o" property="numero1" value="< %=request.getParameter("numero1")%>"/  -->
<!--jsp:setProperty name="o" property="*" /-->
<jsp:setProperty name="o" property="*"/>
<%
	String text="";
	text=text+"<br>";

	String[] operaciones=request.getParameterValues("operacion");
	for (int i=0;i<operaciones.length;i++){
		if(operaciones[i].matches("suma")){
			text=text+"- "+o.suma()+"<br>";
		}
		if(operaciones[i].matches("resta")){
			text=text+"- "+o.resta()+"<br>";
		}
		if(operaciones[i].matches("multiplicacion")){
			text=text+"- "+o.multiplicacion()+"<br>";
		}
		if(operaciones[i].matches("division")){
			text=text+"- "+o.division()+"<br>";
		}
		if(operaciones[i].matches("residuo")){
			text=text+"- "+o.residuo()+"<br>";
		}
	}
%>
- Numero 1: <jsp:getProperty name="o" property="numero1"/><br>
- Numero 2: <jsp:getProperty name="o" property="numero2"/>
<%= text %>

</body>
</html>

tenemos una java llamada
Operacion.java

package ejercicio07;
public class Operacion{
	private int numero1=10;
	private int numero2=4;

	public void setNumero1(int n1){
		numero1=n1;
	}

	public void setNumero2(int n2){
		numero2=n2;
	}

	public int getNumero1(){
		return numero1;
	}
	public int getNumero2(){
		return numero2;
	}

	public String suma(){
		return "la suma es "+(numero1+numero2);
	}

	public String multiplicacion(){
		return "la multiplicacion es "+(numero1*numero2);
	}

	public String resta(){
		return "la resta es "+(numero1-numero2);
	}
	public String division(){
		return "la division es "+(numero1/numero2);
	}
	public String residuo(){
		return "el residuo es "+(numero1%numero2);
	}

}

tenemos este css llamado
estilo.css

*{
	background-image:url(wallpaper1024x768.png);
	background-color:#CC0000;
	color:#FFFFFF;
}

recursos usados


10 Responses to “USEBEAN SETPROPERTY GETPROPERTY en JSP”


  1. 1 juanntorres
    abril 28, 2011 a las 2:13 pm

    Si declaro variables en un formulario lo podré hacer asi:

    ó con el import:

    De la segunda forma (con la forma del import): no entiendo algunos conceptos como session=”true”, language=”java”, cual es la diferencia entre usar solo el import o ponerle estos atributos de session y lahguage?

    De la otra forma (jsp:usebean id=”0″ scope=”page” class…): Se que el class nos dice cual clase estamos llamando y supongo que el id es como si estuviera instanciando esa clase, porque no veo donde se crean el objeto ‘o’ (Operacion o= new Operacion();)

    Se que el scope = “page” obliga a que esa variable solo se usa en esta página asi que ninguna otra podrá verla, pero cuando es session no veo la diferencia, ¿yo como se que varias páginas pertenecen a la misma session o a que session pertenecen?

    el término de application tampoco lo entioendo muy bien, porque aun no se cuando las páginas pertenecen a la misma application, ¿o simplemente quedan en memoria para cualquier página? en ese caso es peligroso.

    y el renglón de:

    no se como funciona pero supongo que los datos parámetros enviados en el formulario deben tener exactamente l mismo nombre de las variables en la clase instanciada.

    gracias

    • abril 28, 2011 a las 2:46 pm

      hasta donde sé el import es para importar y es de la directiva page, no es para declarar variables

      • 3 juanntorres
        abril 28, 2011 a las 9:52 pm

        Correcto, se importan para poder instanciar esas clases.

  2. 4 RaytonPhoenix
    septiembre 15, 2011 a las 2:44 pm

    Hola. Muy buen tutorial, pero tengo una duda. Trato de hacer un formularo en el cual simplementre trato de pasar un nombre y apellido (solo como prueba), para ello, creo uno en html y el method es del tipo POST (pagina .jsp form del tipo html). la cosa es que lo quiero pasar todo por un bean y creo un package con las clases de set y get. hasta ahora todo bien, el problema pasa al querer obtener los datos, ya que uso jsp:useBean (con el nombre de mi package.clase) con su correspondiente jsp:setProperty y jsp:getProperty. Me aparece el siguiente error:

    El valor de atributo request.getParameter(“nombre”) está entrecomillado con ” que debe de usar escape al usarse dentro del valor

    Muy raro, ya que en tu ejemplo aparece igual, solo que lo modifique para que recibiera mis datos:

    <jsp:setProperty name="dato" property="nombre" value= "”

    ¿Me podrias indicar o guiarme un poco? De antemano, te agradezco tu ayuda.

    • 5 RaytonPhoenix
      septiembre 15, 2011 a las 2:50 pm

      perdon, por el tema del value es:

      <jsp:setProperty name="dato" property="nombre" value= "”
      edito esta linea para que se publique

    • 6 RaytonPhoenix
      septiembre 15, 2011 a las 2:52 pm

      otra vez no salio, si puedes borrar el anterior te lo agraeceria =)

      <jsp:setProperty name="dato" property="nombre" value= "” />

    • 7 RaytonPhoenix
      septiembre 15, 2011 a las 2:56 pm

      tercera y la vencida… >:!

      <jsp:setProperty name="dato" property="nombre" value= ( <!— "” ) –> />

      omitiendo los parentesis y el tag de comentario (para ver si es que sale bien el ejemplo :P)

  3. 8 alex
    febrero 23, 2012 a las 9:44 am

    lo puedes volver a subir

    • febrero 24, 2012 a las 7:06 pm

      si quieres mandame un correo y lo envio


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


I+Ds

Dudas consultas
Facebook
Twiter
Google +

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevas publicaciones por correo.

Únete a otros 348 seguidores

Ingenio DS en Facebook

Redes Sociales y Archivos

Entradas

mayo 2010
L M X J V S D
« Abr   Jun »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

IngenioDS en twiter


A %d blogueros les gusta esto: