Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 18-nov-2006, 12:30   #1 (permalink)
Sevillo no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 55
Usar hibernate para listar

Buenas Tardes

Estoy tratando de hacer un listado de productos en un pagina usando hibernate. pero tengo las tablas producto 1, producto 2, producto3, ..., producto n, tengo las clases, producto 1.java, producto 2.java, ..., producto n.java, tambien tengo los producto i.hbm.xml, lo que quiero hacer es que desde la pagina principal yo elija que producto quiero listar seleccionandolo desde un combobox, el combo box tendra un listado de los distintos productos y una ves que elija uno valla directamente a la pagina con el listado del producto x seleccionado, lo que estoy haciendo es que me voy a la pagina listarproductos.jsp?producto=productox, ahora debo relacionar el parametro con la tabla que lleva el nombre del parametro.
Mi pregunta es, como debo hacer los acction-mapping y como relaciono el parametro producto con la tabla que quiero, el form-bean lo tengo como quiero y lo que quiero obtener es un collection de productos

public Producto getProducto() {
return producto;
}

public void setProducto(Producto producto) {
this.producto = producto;
}

public Collection getLista() {
return lista;
}

public void setLista(Collection lista) {
this.lista = lista;
}

para el listado me imagino usar el iteration, pero con lo que tengo cada vez que lo hago me voy a listarProductos.jsp y la tabla me aparece vacia.

PD: estoy usando struts e hibernate mediante MyEclipse 5.0

Gracias

Sevillo está desconectado   Responder Citando
Antiguo 18-nov-2006, 15:05   #2 (permalink)
Sevillo no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 55
De acuerdo agregando

Ademas tengo el hibernatesessionfactory.java funcionando correctamente, y tengo una clase producto.java que es un public interface Produco, que garantiza que todos los producto i tengan los primeros 5 atributos iguales y tiene los gets correctamente funcionando, que son los que quiero obtener para hacer el mencionado listado, que son codigo, cantidad, nombre, descripcion y unidad de medida, en cada clase estan los get y los set correctamente, y tengo el action de la siguiente manera

/**
* Lista los productos de una determinada tabla de la base de datos
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward listar(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
GestionarItemForm gestionarItemForm = (GestionarItemForm) form;

gestionarItemForm.limpiar();
mensajes.clear();

// Obtengo la tabla que se quiere listar
String tabla = request.getParameter("producto");

try {
Collection c = null;
Session session = HibernateSessionFactory.currentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from " + tabla);
c = query.list();
tx.commit();
session.close();

gestionarItemForm.setLista(c);
}

catch (HibernateException e) {
mensajes.add("items",new ActionMessage("error.bd"));
saveErrors(request.getSession(),mensajes);
gestionarItemForm.setLista(null);
}


//Estos par'ametros los "seteamos" en la sesi'on porque la salida es de tipo Redirect
//Sirven para que, al volver a la lista de productos, esten las categorias ya seleccionadas
request.getSession().setAttribute("producto", request.getParameter("producto"));
return mapping.findForward("listar");
}

y el forward listar en el arechivo struts-config.xml es:
<action
attribute="gestionarItemForm"
input="/producto/item.jsp"
name="gestionarItemForm"
parameter="accion"
path="/gestionarItem"
type="proyecto.similm.struts.action.GestionarItemA ction">
<forward name="listar" path="/listarProductos.jsp" />
</action>

para mi el error esta en el input y/o al hacer el listado en el jsp con el collection que devuelve la accion, pero sigo sin coseguir hacer el listado que quiero.

Gracias
Sevillo está desconectado   Responder Citando
Antiguo 18-nov-2006, 15:25   #3 (permalink)
Sevillo no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 55
El parametro accion del action es porque ese action-mapping se llama gestionarItem por lo que si accion es modificar se podra modificar un elemento de la tabla, si la accion es listar, hago el listado de la tabla y si es agregar, inserto un elemento a la tabla, entonces me imagino que debo relacionar el input con el mismo listarProductos.jsp para especificar el parametro accion, y el llamado a listarProductos.jsp viene desde un javascript

<script>
function abrir(subcategoria)
{

if(subcategoria != "nula")
{
referencia = "listarProductos.jsp?" + subcategoria;
document.location=referencia;
}
}
</script>

donde subcategoria es: "producto=productoi"
Sevillo está desconectado   Responder Citando
Antiguo 18-nov-2006, 15:35   #4 (permalink)
Sevillo no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 55
la funcion abrir es llamda desde el combobox OnChange(subcategoria) pero por lo visto nunca hago el llamado a la accion.
¿Debo colocar el llamado en el OnChange del combobox? como lo hago

Gracias de Antemano
Sevillo está desconectado   Responder Citando
Antiguo 19-nov-2006, 12:39   #5 (permalink)
consultoriajava ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2005
Ubicación: Madrid, España
Mensajes: 18
consulta Sevillo

Ummm, ¿no se podria resumir la pregunta en un par de lineas?, es que tengo una vida :D (lo digo de buenas eeh).

consultoriajava está desconectado   Responder Citando
Antiguo 19-nov-2006, 14:21   #6 (permalink)
Sevillo no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 55
claro

ok, la pregunta es
¿Como puedo llamar una accion cuando un comboobox cambien, es decir en la accion OnChange pasandole el value del combobox.

yo puedo tomar el valor del combobox con la siguiente funcion document.form.select.options[document.form.select.selectedIndex].value
pero es javascript, no jsp

como puedo hacer la combinacion, llamar el action-mapping pasandole como parametro el valor del combobox el la accion OnChange
Sevillo está desconectado   Responder Citando
Antiguo 20-nov-2006, 01:32   #7 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.615
Haciendo un submit del formulario dentro del onChange.

Normalmente se hacen dos formularios, uno que contiene unicamente el Combo y otro con los otros campos del formulario. El combo unicamente se usa para seleccionar (usando el evento onChange con un submit) y luego el resto de campos va con otro form que permite la modificacion, alta o baja de registros.
GreenEyed está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:14.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96