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

Concatenar una 'Expression Language' (EL)

Estas en el tema de Concatenar una 'Expression Language' (EL) en el foro de Java en Foros del Web. Estoy utilizando JBoss Developer Studio (Eclipse + JBoss Tools +..) para crear una aplicación Web. Cuando creo una Entity llamada por ejemplo Producto, se me ...
  #1 (permalink)  
Antiguo 21/12/2010, 17:41
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 11 meses
Puntos: 0
Concatenar una 'Expression Language' (EL)

Estoy utilizando JBoss Developer Studio (Eclipse + JBoss Tools +..) para crear una aplicación Web. Cuando creo una Entity llamada por ejemplo Producto, se me genera un archivo Producto_user1.java, Producto_user1Home.java y Producto_user1List.java

Dentro de Producto_user1List.java hay un método llamado getResultListProductos que me devuelve un List<Producto>

Entonces en un archivo ListadodeProductos.xhtml puedo crear una tabla con RichFaces de la siguiente forma:
<rich:dataTable id="productoList"
var="_producto"
value="#{producto_user1List.resultListProductos}"
rendered="#{not empty producto_user1List.resultListProductos}">
<h:column>
<h:outputText value="#{_producto.nombre}"/>
</h:column>
</rich:dataTable>

Hasta ahí todo perfecto.

Ahora si quisiera tener varios usuarios en la aplicación y utilizar la misma página "Listado deProductos.xhtml" y que cada uno tuviera su propia entidad, es decir su propia tabla de productos. Por ejemplo crear otra entidad que se llame Producto_user2.java que a su vez creará, Producto_user2Home.java, y Producto_user2List.java.

Cómo podría concatenar algo del estilo de esto para ponerlo en 'value' de Rich:dataTable:
value="#{producto_" + usuario + "List.resultListProductos}"
siendo usuario una variable, por ejemplo, en Seam, Identity.username
He probado de todo, llamando a una función externa que me lo concatene, pero como la función devuelve un string, value toma como valor un string, y por lo tanto me da un error cuando intenta acceder a <h:outputText value="#{_producto.nombre}"/>, ya que el atributo nombre de un string no existe.

Acepto sugerencias de como implementar mi aplicación, para que cada usuario tenga su tabla de productos independientes.
Una solución que he encontrado es crear una sola tabla de productos para todos los usuarios y una de las columnas sea el identificador del usuario, y que el método getResultListProductos me devuelva sólo los productos del usuario logueado. Pero cuando existan muchos usuarios en la aplicación y creen muchos productos, la tabla se hace inmensa. De ahí que quiero hacerlo en tablas independientes.

Etiquetas: concatenar, expression
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 11:28.