Foros del Web » Programación para mayores de 30 ;) » Java »

Usar hibernate para listar

Estas en el tema de Usar hibernate para listar en el foro de Java en Foros del Web. Buenas Tardes Estoy tratando de hacer un listado de productos en un pagina usando hibernate. pero tengo las tablas producto 1, producto 2, producto3, ..., ...
  #1 (permalink)  
Antiguo 18/11/2006, 12:30
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
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

  #2 (permalink)  
Antiguo 18/11/2006, 15:05
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
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
  #3 (permalink)  
Antiguo 18/11/2006, 15:25
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
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"
  #4 (permalink)  
Antiguo 18/11/2006, 15:35
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
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
  #5 (permalink)  
Antiguo 19/11/2006, 12:39
 
Fecha de Ingreso: septiembre-2005
Ubicación: Madrid, España
Mensajes: 18
Antigüedad: 18 años, 7 meses
Puntos: 0
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).

  #6 (permalink)  
Antiguo 19/11/2006, 14:21
 
Fecha de Ingreso: noviembre-2005
Ubicación: Venezuela
Mensajes: 56
Antigüedad: 18 años, 5 meses
Puntos: 0
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
  #7 (permalink)  
Antiguo 20/11/2006, 01:32
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:00.