Programación en castellano
Inicio > Foros > Java (Servlets y JSP) > logic:iterate
-Foros de debate

Java (Servlets y JSP)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

logic:iterate
Enviado por flapyTeam el día 21 de octubre de 2004

tengo una clase miObjetoBean la cual tiene un get y set de nombre.

Si yo en el action creo tres objetos de esa clase y los añado a una Collection:

miObjetoBean obj1 = new miObjetoBean ("1");
miObjetoBean obj2 = new miObjetoBean ("2");
miObjetoBean obj3 = new miObjetoBean ("3");

y los añado a

Collection rtB = new ArrayList();
rtB.add(obj1);
rtB.add(obj2);
rtB.add(obj3);


req.setAttribute("resultBusqueda",resultBusqueda);



Mi pregunta es que es lo que tengo que poner en el logic:iterate para recorrerlo
he puesto:

<logic:iterate name="resultBusqueda"
id="fila"
type="java.util.ArrayList"
scope="request">

<tr>
<td>
<bean:write id="fila" property="nombre" />
</td>
</tr>

y no funciona si me podeis decir en que me he equivocado gracias

 
Re: logic:iterate
Enviado por thepolice0101 el día 22 de octubre de 2004

en el tipo de dato parece q esta mal ya q deberias poner el tipo de dato del objeto q has insertado en el arraylist, recuerda q los tipos de datos como string, int se pueden imprimir, otro tipos de datos q hayas creado tu te imprimira otros caracteres ya q lo traduce.

 
Re: Re: logic:iterate
Enviado por flapyTeam el día 22 de octubre de 2004

<logic:iterate name="resultBusqueda"
id="fila"
type="java.util.ArrayList"
scope="request">

<tr>
<td>
<bean:write id="fila" property="nombre" />
</td>
</tr>

Ahora lo que pasa es que me dice que resultBusqueda no esta en el scope request.
Yo se lo asigno a en mi action, pero no se como hacer
para que la action se ejecute antes de cargar la pagina pruebo poniendo el nombre /miAction.do pero me da error de servlet

 
Re: Re: Re: logic:iterate
Enviado por thepolice0101 el día 25 de octubre de 2004

Aqui te mando un ejemplo de algo...date cuenta de la configuracion de struts, derepente en algun lado del codigo estas
haciendo q se pierdan los parametros. Mira la action "finalizarSesion.do" "eliminarLibro.do" el atributo redirect ="true"
es para q al finalizar la sesion o despues de eliminar alguna entidad se borren todos los parametros y atributos de la pagina
quizas has echo eso.
Si el error q te sale es una pagina en blanco o no encuentra la action quizas has puesto mal el path, yo antes tambien tenia
ese problema, creo q es por la version de struts no lo se (al final no llegue a comprobarlo, gustas averigua eso y finalmente
me dices lo q sucede, pq) pq antes cuando recien empezaba
lo hacia con una version de struts 1.1, ahora lo hago con una version "jakarta-struts-20040415" probando con esa version no
tuve muchos problemas en las configuraciones (hasta ahora todo funciona bien): lo malo de esta version no es completa
como la 1.1 pero lo q falta se puede encontrar en la web, es cosa de ir probando hasta q todo funcione bien. Aqui te mando
un ejemplo, sino te llega completo porque creo q en este foro solo acepta una cantidad determinada de caracteres, si gustas
me mandas un correo y te mando el ejemplo (j_systems@hotmail.com).



<?xml version="1.0" encoding="UTF-8"?>

<struts-config>

<form-beans>
<form-bean name="libroForm" type="com.entidades.Libro"/>
</form-beans>

<action-mappings>
<action path="/inicio"
type="com.acciones.InicioAction"
unknow="true">
<forward name="success" path="/inicio.jsp"/>
</action>
<action path="/nuevoLibro"
type="com.acciones.NuevoLibroAction">
<forward name="success" path="/registrarLibro.jsp"/>
</action>

<action path="/guardarLibro"
type="com.acciones.GuardarLibroAction"
input="/error.jsp"
name="libroForm"
scope="request">
<forward name="success" path="/nuevoAutorMaterialB.do"/>
</action>

<action path="/eliminarLibro"
type="com.acciones.EliminarLibroAction"
input="/error.jsp"
scope="request">
<forward name="success" path="/informeTransaccion.jsp" redirect="true"/>
</action>
<action path="/finalizarSesion"
type="com.acciones.FinalizarSesionAction"
input="/error.jsp">
<forward name="success" path="/inicio.do" redirect="true"/>
</action>
</action-mappings>
<message-resources parameter="BibliotecaRecursos"/>
</struts-config>

********* registrarLibro.jsp
Esta es una pagina q carga un formulario en blanco y algunas listas que jalan datos de una base de datos, detras de esto
hay una clase de acceso a datos para cargarlos. Al final esta la clase Action q hace esto.


<%@ taglib uri="/bean" prefix="bean" %>
<%@ taglib uri="/html" prefix="html" %>
<%@ taglib uri="/logic" prefix="logic" %>
<%@ taglib uri="/tiles" prefix="tiles" %>

<HTML>
<HEAD>
<TITLE>Registro de Libros</TITLE>
</HEAD>

<BODY>
<BR/>
<html:errors/>
<BR/>
<html:form action="/guardarLibro.do">

<TABLE width="100%" border="0" cellspacing="0" cellpadding="2">
<TR>
<TD width="16%">Codigo : </TD>
<TD colspan="3"><html:text property="libCodigo" size="20"/></TD>
</TR>
<TR>
<TD colspan="4">
<TABLE width="100%" border="0" cellspacing="0" cellpadding="2">
<TR>
<TD width="16%">Titulo :</TD>
<TD width="84%">
<html:text property="matBTitulo" size="100"/>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>Editorial :</TD>
<TD width="37%">
<html:select property="editNumero">
<html:options collection="editorialList" property="editNumero"
labelProperty="editNombre"/>
</html:select>
</TD>
<TD width="20%">Edicion :</TD>
<TD width="27%">
<html:select property="edicNumero">
<html:options collection="edicionList" property="edicNumero"
labelProperty="edicNombre"/> </html:select>
</TD>
</TR>
<TR>
<TD>Idioma :</TD>
<TD>
<html:select property="idiNumero">
<html:options collection="idiomaList" property="idiNumero"
labelProperty="idiNombre"/>
</html:select>
</TD>
<TD>Fec. de Publicacion :</TD>
<TD><html:text property="libFecPub" size="15"/></TD>
</TR>
<TR>
<TD height="71" valign="top">Foma de la Obra :</TD>
<TD>
<TABLE width="30%" border="1" align="left" cellpadding="2" cellspacing="0">
<TR>
<TD>
<logic:iterate name="formaObraList" id="formaObra"
type="com.entidades.FormaObra" scope="request">
<html:radio property="fobNumero" value="fobNumero" idName="formaObra"/>
<bean:write name="formaObra" property="fobNombre"/><BR/>
</logic:iterate>
</TD>
</TR>
</TABLE></TD>
<TD>Numero de P&aacute;ginas :</TD>
<TD><html:text property="libNumPag" size="10"/></TD>
</TR>
<TR>
<TD height="30" valign="top">Procedencia :</TD>
<TD>
<html:select property="proNumero">
<html:options collection="procedenciaList" property="proNumero"
labelProperty="proNombre"/>
</html:select>
</TD>
<TD>Forma de Adquisicion :</TD>
<TD>
<html:select property="fadNumero">
<html:options collection="formaAdquisicionList"
property="fadNumero" labelProperty="fadNombre"/>
</html:select>
</TD>
</TR>
<TR>
<TD height="22" colspan="4" valign="top">
<DIV align="center"><B>Resumen</B></DIV>
</TD>
</TR>
<TR>
<TD height="22" colspan="4" valign="top">
<DIV align="center">
<html:textarea property="matBResumen" cols="70" rows="6"/>
</DIV>
</TD>
</TR>
<TR>
<TD height="22" colspan="4" valign="top">
<DIV align="center"><BR/>
<html:submit value="Guardar"/>
</DIV>
</TD>
</TR>
<TR>
<TD width="16%">matBCodigo : </TD>
<%
String codigo=(String)request.getAttribute("matBCodigo");
%>
<TD colspan="3"><html:text property="matBCodigo" size="20" value="<%= codigo %>" />

</TD>
</TR>
<TR>
<TD width="16%">bibCodigo : </TD>
<%
Byte bibCodigo=(Byte)request.getAttribute("bibCodigo");
String b=bibCodigo.toString();
%>
<TD colspan="3">
<html:text property="bibNumero" value="<%= b %>" />
</TD>
</TR>
<TR>
<TD width="16%">Fecha Ingreso : </TD>
<%
java.sql.Date d=(java.sql.Date)request.getAttribute("fechaIngreso");
String date=d.toString();
%>
<TD colspan="3"><html:text property="matBFecIng" size="20" value="<%= date %>" />

</TD>
</TR>
</TABLE>
</html:form>
</BODY>
</HTML>

/***** NuevoLibroAction.java

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionServlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import java.io.IOException;

import java.sql.Connection;
import java.sql.SQLException;

import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;

import com.util.ConnectionPool;

import com.accesoBD.EditorialDAO;
import com.accesoBD.EdicionDAO;
import com.accesoBD.IdiomaDAO;
import com.accesoBD.FormaAdquisicionDAO;
import com.accesoBD.FormaObraDAO;
import com.accesoBD.ProcedenciaDAO;
import com.accesoBD.LibroDAO;
import com.accesoBD.AutorDAO;

public class NuevoLibroAction extends Action{

private ConnectionPool pool;

/** Creates a new instance of RegistrarLibro */
public NuevoLibroAction() {
pool=ConnectionPool.getInstance();
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

Connection con=null;

try{
con=pool.getConnection();

LibroDAO libroDAO=new LibroDAO(con);
EditorialDAO editorialDAO=new EditorialDAO(con);
EdicionDAO edicionDAO=new EdicionDAO(con);
IdiomaDAO idiomaDAO=new IdiomaDAO(con);
FormaObraDAO formaObraDAO=new FormaObraDAO(con);
FormaAdquisicionDAO formaAdquisicionDAO=new FormaAdquisicionDAO(con);
ProcedenciaDAO procedenciaDAO=new ProcedenciaDAO(con);

Collection colEditorial=editorialDAO.buscarTodos();
Collection colEdicion=edicionDAO.buscarTodos();
Collection colIdioma=idiomaDAO.buscarTodos();
Collection colFormaObra=formaObraDAO.buscarTodos();
Collection colFormaAdquisicion=formaAdquisicionDAO.buscarTodos();
Collection colProcedencia=procedenciaDAO.buscarTodos();

request.setAttribute("matBCodigo", libroDAO.generaCodigo());
request.setAttribute("fechaIngreso", obtieneFechaActual());
request.setAttribute("bibCodigo", Byte.decode("1"));
request.setAttribute(NombreBean.EDITORIAL_LIST, colEditorial);
request.setAttribute(NombreBean.EDICION_LIST, colEdicion);
request.setAttribute(NombreBean.IDIOMA_LIST, colIdioma);
request.setAttribute(NombreBean.FORMAOBRA_LIST, colFormaObra);
request.setAttribute(NombreBean.FORMAADQUISICION_LIST, colFormaAdquisicion);
request.setAttribute(NombreBean.PROCEDENCIA_LIST, colProcedencia);

return mapping.findForward("success");

}catch(SQLException e){
e.printStackTrace();
throw new RuntimeException("No se puede conseguir una conexión");
}finally{
try{
if(con!=null)
con.close();
}catch(SQLException e){
throw new RuntimeException(e.getMessage());
}
}
}
private java.sql.Date obtieneFechaActual(){
Date curDate;
SimpleDateFormat dateFormat;
GregorianCalendar targetDate;

GregorianCalendar currentDate=new GregorianCalendar();
curDate=(Date)currentDate.getTime();
dateFormat=new SimpleDateFormat("yyyy-MM-dd");

return java.sql.Date.valueOf(dateFormat.format(curDate));
}
}

 
Re: Re: Re: Re: logic:iterate
Enviado por ignacio el día 23 de diciembre de 2005

Para aclarar toda duda explico a lo que corresponde cada cosa:

<logic:iterate id=\"ident\" name=\"name\" type=\"AnyCollectionClass\" scope=\"request\" >

<!-- Aquí:
- id: le asigna un nombre cualquiera que servirá para llamarlo (al objeto contenido en el Collection) desde dentro del iterate,

- name: es el nombre con que se agregó al objeto request, page o session (o si se agregó a otro bean se coloca su nombre (x ejemplo si se le puso en un ActionForm). por Ejemplo: si tienes una clase que es del tipo AClass y si escribiste en el Action
\"request.setAttribute(\"objeto\",new AClass(param1,param2)); \" --> entonces name=\"objeto\"
),

- type: es la clase que está contenida en el objeto Collection (con lo anterior sería \"type=\"paquete.AClass\")

-scope: es que tanto debe buscar Struts para encontrar al objeto; por defecto (sin escribir scope) busca en page, luego en request y finalmente en session.-->

Ahora el bean:write
<bean:write name=\"ident\" property=\"param1\"/>

<!--
Por si no queda claro:

-name: es el mismo nombre que se le puso a id en el tag logic:iterate

-property: es el nombre del atributo de la clase que se quiere obtener. Como se mostró, utilizando una clase AClass, ésta debe tener un atributo llamado param1 y que , OJO, tenga un método que se llame getParam1() (tipo JavaBean).
-->

espero que esto aclare más.

 
Re: Re: Re: Re: Re: logic:iterate
Enviado por Carlos el día 6 de febrero de 2006

Gracias de pana! al fin lo entiendo... estaba enrredado con que es que.

 
Re: Re: Re: Re: Re: Re: logic:iterate
Enviado por Miguel Angel el día 16 de marzo de 2006

la cuestión de logic:iterate esta bien explicada y me gustaria saber en que consiste la propiedad indexId de logic:iterate.
El problema es que quiero mostrar un listado que muestra 8 filas por pagina de posibles paginas obtenidas en una consulta SQL de XClaseDAO, lo cual origina mas registros que 8 filas por pagina. ¿Como se desarrolla mediante logic:iterate?

Gracias

 
problema incluyendo dos campos en un labelProperty
Enviado por Mary el día 5 de diciembre de 2007

Hola....quiero contarles un problemilla que tengo con un html:select, resulta que necesito mostrar dos campos de un ben en el labelProperty del select y no se como serìa la sintaxis para hacerlo....alguien podria ayudarme...Un ejemplo de esto seria: querer mostrar nombres y apellidos de personas en el select, teniendo en cuenta que nombres y apellidos son dos campos de la clase Persona...les agradezco mucho si alguien sabe que tengo q hacer...y me da luces sobre el tema

 



Re: Re: Re: Re: Re: logic:iterate
Enviado por LUZ el día 14 de junio de 2008

Y si la iteracion la tengo que realzar sobre un arraylist que tiene strings pelados ej "pag1","pag2",pag3"
que debo poner el el bean write en donde va la property

 






Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados