En este grupo En todos

Grupo de Java



Direccionar un bean a un JSP

Gonzalo
Lima, Perú
Escrito por Gonzalo Diaz
el 23/05/2009 | Nivel Medio

Saludos a todos,

Tengo un problema con un proyecto en java :

En un servlet, entre varios metodos, tengo uno que carga un bean con los datos de un registro de una tabla, mi objetivo es actualizar o editar los campos cargados en este bean pero en un formulario o archivo JSP (con codigo xml y java).

Mi pregunta es concretamente:

Como hago para que ese bean ya cargado en mi SERVLET, sea direccionado a mi archivo JSP
en el que debo recepcionar el bean y corregir mediante un formulario


================= este es un fragamento del metodo en mi SERVLET=====================
================= en el q he cargado al bean con los datos de un ========================
================= registro y que necesito usar en mi JSP =========================

protected void actualiza(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
Vendedor vendedor = FabricaDeObjetos. GetSubFabrica(FabricaDeObjetos. MYSQL). GetVendedor();
int idVendedor = Integer. ParseInt(req. GetParameter("codigo"));


BeanVendedor bean = new BeanVendedor();
bean = vendedor. BuscaVendedor(idVendedor);

// hasta aqui he cargado el bean con los datos del regvistro que busque, ahora................
// como lo direcciono a mi JSP?

==============================================================================


==================Este es un fragmento de mi JSP =====================================
====he intentado usar esto : <jsp:useBean id = "bean" class = "demo.beans.BeanVendedor" /> =====
====y esto en uno de los "input text" para ver si jalo uno de los datos del bean :
==== pero sin exito :( ________>>>>> value= "<%= bean. GetNombre() %>" , como podran ver en el codigo lineas abajo...............................................
=== MI JSP :


< %@page import="java. Util. *" %>
< %@page contentType="text/html" pageEncoding="UTF-8"%>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. 01 Transitional//EN"
" https://www.w3.org/TR/html4/loose. Dtd ">

<jsp:useBean id = "bean" class = "demo.beans.BeanVendedor" />

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Actualizacion</h1>
</body>
<form action="Vendedor">

<input type="hidden" name="metodo" value="actualiza">

<table>
<tr>
&nb

Gonzalo Diaz
Lima, Perú
Escrito por Gonzalo Diaz
el 23/05/2009 | Nivel Medio

Eduardo, gracias x tu atencion, mi error con las mayusculas es solo en los comentarios, de otra manera no me hubiese funcionado el metodo hasta la carga del bean, en mi afan de arreglar el texto sobreescribi en algunos segmentos del codigo.
Fijate el mismo error en tu respuesta :), "Despachador" y se te paso poner el "/" en "tupagina. Jsp" , errores que despues nos pasa factura el compilador del java que es tan especial.
Te comento que he llegado hasta el nivel que pueda estar por mi cuenta, tengo mucho por aprender y agradesco el soporte de personas como tu que estan en un buen nivel.
Llendo al grano: Yo he recurrido a algo parecido anteriormente sin exito, he probado con la indicacion que me das en tu respuesta, pero se me nuestra el formulario de mi JSP, con valores null en los datos, lo que indica que aun no esta leyendo el bean( ¿ ?).

Este el metodo en mi servlet y he incluido lo que me indicas para enviar mi bean al JSP.

ESTE ES EL METODO DEL SERVLET
protected void actualiza(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
Vendedor vendedor = FabricaDeObjetos. GetSubFabrica(FabricaDeObjetos. MYSQL). GetVendedor();
int idVendedor = Integer. ParseInt(req. GetParameter("codigo"));
BeanVendedor bean = new BeanVendedor();
bean = vendedor. BuscaVendedor(idVendedor);
RequestDispatcher despachador = getServletContext(). GetRequestDispatcher ("/vendedorMostrado. Jsp");
despachador. Forward(req, resp); } catch (Exception ex) {
Logger. GetLogger(ServletVendedor.class.getName()). Log(Level. SEVERE, null, ex);
}

ESTE ES UN FRAGMENTO DEL JSP EN EL QUE PUEDES OBSERVAR ALGO CON LO QUE PUEDA AYUDARTE A QUE ME AYUDES
-----------------------------------------------------------------------------------------------------------------------------------------
< %@page import="java. Util. *" %>
< %@page contentType="text/html" pageEncoding="UTF-8"%>

<jsp:useBean id = "bean" class = "demo.beans.BeanVendedor" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Actualizacion</h1>
</body>
<form action="Vendedor">
<input type="hidden" name="metodo" value="actualiza">
<table>
<tr>
<td>Nombre </td>
<td> <input type="text" value="<%= bean. GetNombre() %>"</td>
&nb
------------------------------------------------------------------------------------------------------------------
Obserben que aqui indico <jsp:useBean id = "bean" class = "demo.beans.BeanVendedor" /> , para tomar los datos del bean cargados en el servlet , demo. Beans es el package en mi patron DAO en el que entre varios pakages tengo el de mis beans, en este caso el bean BeanVendedor. Java y para mostrar x ej el dato del nombre en el bean : "<%= bean. GetNombre() %>".. Que me puede faltar?

Eduardo gracias mil y ojala puedas contestarme espero tu respuesta y el de todos los que tengan algun aporte

Saludos GONZALO

Gonzalo Diaz
Lima, Perú
Escrito por Gonzalo Diaz
el 25/05/2009 | Nivel Medio

Eduardo, aqui de vuelta,

Separe en otro metodo en mi servlet, el proceso de busqueda del registro a editar, dejando exclusivamente el proceso de actualizacion en el metodo actualizar,
Finalmente tengo los datos del bean en mi JSP para poderlos editar, los corrigo, al efectuar el submit para actualizar, el flujo retorna a mi Servlet, al metodo que actualiza, pero ahora el tema es a la inversa, antes era del Servlet al JSP, ahora EL PROBLEMA es del JSP al servlet(! ¿ ?)

Eduardo comprenderas que siendo autodidacta en este tema, apreciare mucho seguir contando con tus aportes.

Con gratitud, saludos

Gonzalo

------------------------------------------------------------jsp-------------------------------------------------
< %@page import="java. Util. *" %>
< %@page contentType="text/html" pageEncoding="UTF-8"%>

<jsp:useBean id = "bean" scope="session" class = "demo.beans.BeanVendedor" />

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<h1>Actualizacion</h1>
</body>
<form name="frmxxx" method="get" action="vendedor">

<input type="hidden" name="metodo" value="actualiza">

<table>
<tr>
<td>Nombre </td>
<td> <input type="text" value="<jsp:getProperty name = "bean" property="nombre" />"</td>
</tr>

<tr>
<td>Apellidos </td>
<td> <input type="text" value="<jsp:getProperty name = "bean" property="apellido" />"> </td>
</tr>

<tr>
<td>Edad </td>
<td> <input type="text" value="<jsp:getProperty name = "bean" property="edad" />"> </td>
</tr>

<tr>
<td&

Gonzalo Diaz
Lima, Perú
Escrito por Gonzalo Diaz
el 25/05/2009 | Nivel Medio

Eduardo, gracias por tu contestacion, mira, reparao en que el editor de los amigos de emagister, no solo te maneja las mayusaculas, sino tambien corta parte de lo que posteas, debe ser por un tema de espacio.

solo veo que quedo mi JSP pero se comio el servlet! , ahora,te comento que por lo q entiendo en mi proceso, lo hago como tu dices, osea, lo que es vista lo efectuo en los JSP, en los servlets ejecuto los metodos relacionados a la conexion a mi BD. Para efectuar la carga de los beans hacia los JSP.

Es por ello que primero tuve el problema de enviar los bean cargados hacia el JSP para la vista, el tema es que ahora previo submit preciso efectuar la vuelta del bean "corregido" en mi JSP hacia el servlet para actualizar mi tabla

------------------------------------------- el servlet----------------------------------------------------------------------------
public class ServletVendedor extends HttpServlet {

Protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String metodo = req. GetParameter("metodo");
if (metodo. Equals("inserta")) {
inserta(req, resp);
lista(req, resp);
} else if (metodo. Equals("elimina")) {
elimina(req, resp);
lista(req, resp);
} else if (metodo. Equals("actualiza")) {
actualiza(req, resp);
} else if (metodo. Equals("busca")) {
busca(req, resp);
} else {
lista(req, resp);
}
}

Protected void inserta(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
FabricaDeObjetos dao = FabricaDeObjetos. GetSubFabrica(FabricaDeObjetos. MYSQL);
Vendedor tabla = dao. GetVendedor();

BeanVendedor bean = new BeanVendedor();
bean. SetNombre(req. GetParameter("nombre"));
bean. SetApellido(req. GetParameter("apellido"));
bean. SetEdad(Integer. ParseInt(req. GetParameter("edad")));
bean. SetFecha(req. GetParameter("fecha"));
bean. SetEstado(req. GetParameter("estado"));
bean. SetDistrito(req. GetParameter("distrito"));

Tabla. InsertaVendedor(bean);
} catch (Exception ex) {
Logger. GetLogger(ServletVendedor.class.getName()). Log(Level. SEVERE, null, ex);
protected void actualiza(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//ES EN ESTE PUNTO QUE DEBERIA DE RECIBIR LOS DATOS
//CORREGIDOS EN EL BEAN DESDE MI JSP, PARA PODER ACTUALIZARLOS
//EN MI TABLA...... ¿Que pude faltarme indicar antes?

String codigo = req. GetParameter("codigo");
String nombre = req. GetParameter("nombre");
String apellido = req. GetParameter("apellido");
String edad = req. GetParameter("edad");
String fecha = req. GetParameter("fecha");
String estadoCivil = req. GetParameter("estado");
String distrito = req. GetParameter("distrito");

}

Protected void busca(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
Vendedor vendedor = FabricaDeObjetos. GetSubFabrica(FabricaDeObjetos. MYSQL). GetVendedor();
int idVendedor = Integer. ParseInt(req. GetParameter("codigo"));
BeanVendedor bean = new BeanVendedor();

Bea