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

<html:select> + struts

Estas en el tema de <html:select> + struts en el foro de Java en Foros del Web. Hola! Sigo peleando con las etiquetas de struts. Estoy tratando de utilizar un <html:select> con un optionsCollection. Quiero cargar este combo box desde una lista, ...

  #1 (permalink)  
Antiguo 20/01/2009, 19:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
<html:select> + struts

Hola!

Sigo peleando con las etiquetas de struts.

Estoy tratando de utilizar un <html:select> con un optionsCollection.
Quiero cargar este combo box desde una lista, array, colección etc...

La cosa es que realmente no tengo muy claro como debo hacer esto, es decir, como crear una lista en el ActionForm, como cargarla con datos y que a partir de ahi se cargue el combo box.

En mi caso quiero cargar una lista de paises, algo así

Código PHP:
<html:select property="pais">
<
html:optionsCollection name="listaPaises" value="id" label="nombre" />
</
html:select
Sé que pais es el atributo con el que voy a leer lo que seleccione el usuario.
listaPaises es el nombre de la lista a partir de la cual se carga el optionsCollection.
id y nombre son campos de la lista, esto lo tengo claro, pero como les dije lo que no sé es como cargar esa lista para que luego la muestre el combo box en mi pagina .jsp.


Esto ha sido todo.
Gracias por su tiempo...
  #2 (permalink)  
Antiguo 21/01/2009, 10:06
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Hola,

Supongamos que tienes una clase Pais con los atributos id, nombre.

Haces un select de la tabla paises y vas llenando cada objeto y agregandolo a una lista, algo asi seria:

while(rs.next()) {
pais=new Pais();
pais.setId(rs.getString("idPais"));
pas.setNombre(rs.getString("nombrePais"));
listaPaises.add(pais);
}

Despues metes la lista de paises en session, por ejemplo;
request.getSession().setAttribute("listaPaises",li staPaises);

Ya que estas en el jsp haces lo siguiente:

<html:select property="pais">
<html:optionsCollection name="listaPaises" value="id" label="nombre" />
</html:select>

Eso seria todo

saludos!
  #3 (permalink)  
Antiguo 21/01/2009, 11:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola!
Muchas gracias por tu respuesta. Esta noche lo prueba a ver que tal.

Una pregunta, esa lista sería un objeto de que tipo? un ArrayList?

Saludos y gracias por la respuesta.
  #4 (permalink)  
Antiguo 21/01/2009, 12:57
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Asi es, puedes manejarlo como un ArrayList.

No se te olvide poner los metodos set() y get() a tu clase Pais.

saludos!
  #5 (permalink)  
Antiguo 22/01/2009, 04:59
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: <html:select> + struts

Hola,
Sólo un comentario, no es necesario que almacenes el listado en la sesión... o si lo haces, acuérdate de liberar los atributos que hayas seteado una vez no los utilices.

request.setAttribute("listaPaises",li staPaises);

Con ésto deberías tener suficiente.

Un saludo
  #6 (permalink)  
Antiguo 22/01/2009, 05:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola!
Muchas gracias por sus respuestas, aun no he podido hacer lo que quiero.

Les cuento,
Tengo una clase Pais asi como me lo indico Bunburyscom, mas o menos asi:

Código PHP:
Public class Pais {
    private 
String id;
    private 
String nombre;

    public 
String getId() {
        return 
id;
    }

    public 
void setId(String id) {
        
this.id id;
    }

    public 
String getNombre() {
        return 
nombre;
    }

    public 
void setNombre(String nombre) {
        
this.nombre nombre;
    }

Por otro lado tengo mas o menos lo siguiente para cargar la lista,

Código PHP:
ArrayList listaPaises = new ArrayList();

Pais pais = new Pais();
pais.setId("001");
pais.setNombre("Argentina");
listaPaises.add(pais);

Pais pais = new Pais();
pais.setId("002");
pais.setNombre("Venezuela");
listaPaises.add(pais);

request.getSession().setAttribute("listaPaises",li staPaises); 
Sin embargo siempre obtengo el siguiente error cuando intento correr la pagina:

Código:
Cannot find bean: "listaPaises" in any scope
El problema es que no se exactamente donde debe ir el codigo para cargar el listado, en principio lo he colocado en el metodo execute de la clase Action y no me ha servido, luego lo coloqué en el metodo validate de el ActionForm y nada, siempre el mismo error.

Entonces donde debo cargar esa lista? En un metodo en el ActionForm? Como deberia llamarse ese metodo?


Bueno ha sido todo, nuevamente muchas gracias por sus respuestas.
  #7 (permalink)  
Antiguo 22/01/2009, 10:48
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Hola,

Esta bien lo que hiciste,

ArrayList listaPaises = new ArrayList();

Pais pais = new Pais();
pais.setId("001");
pais.setNombre("Argentina");
listaPaises.add(pais);

pais = new Pais(); //// aqui cambiale por esto
pais.setId("002");
pais.setNombre("Venezuela");
listaPaises.add(pais);

request.getSession().setAttribute("listaPaises",li staPaises);

Podrias poner un poco de tu codigo de el jsp??
  #8 (permalink)  
Antiguo 22/01/2009, 11:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola Bunburyscom.

El problema es que este codigo

Código PHP:
ArrayList listaPaises = new ArrayList();

Pais pais = new Pais();
pais.setId("001");
pais.setNombre("Argentina");
listaPaises.add(pais);

pais = new Pais(); //// aqui cambiale por esto
pais.setId("002");
pais.setNombre("Venezuela");
listaPaises.add(pais);

request.getSession().setAttribute("listaPaises",li staPaises); 
no se donde colocarlo, es decir, no se si tengo que colocarlo en el ActionForm en algun metodo, como se llamaria ese metodo, si tengo que colocarlo en el validate, si tengo que colocarlo en mi clase Action en el execute, para que asi apenas cargue la pagina ya la lista este cargada en el combo box.

Saludos y gracias por tu tiempo.

PD: no te coloco el codigo php porque estoy en el trabajo, y eso es algo que estoy haciendo en mi casa, en la noche detodas formas si sigo teniendo problemas lo posteo.
  #9 (permalink)  
Antiguo 22/01/2009, 11:54
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Hola,

Ese codigo se pone donde tengas la variable "request" iniciada, normalmente va en la clase Action, ya sea en el metodo execute() o en algun otro donde le mandes como parametro la variable "request".

Yo veo tu codigo bien

saludos!
  #10 (permalink)  
Antiguo 22/01/2009, 20:46
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Bueno, la verdad no lo he podido solucionar, siempre cuando ejecuto la pagina me sale el error Cannot find bean: "listaProfesion" in any scope, a continuacion les coloco el codigo a ver si ustedes me ayudan a ver donde esta el error.

Tengo una pagina .JSP mas o menos como sigue

Código PHP:
<&#37;-- 
    
Document   Clientes
    Created on 
15-ene-200922:13:47
    Author     
root
--%>

<%@ 
taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ 
taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@
page contentType="text/html" pageEncoding="UTF-8"%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>

<
html>
    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <
title>Registro de Clientes</title>
        <
link rel="stylesheet" type="text/css" href="stylesheet.css">
    </
head>
    <
body>
        <
h1>Registro de Clientes!</h1>
        <
html:form action "/Clientes">
            <
table border="0">
                <
tbody>
                    <
tr>
                        <
td>Cedula:</td>
                        <
td><html:text property="cedula" /></td>
                    </
tr>
                    <
tr>
                        <
td>Nombre:</td>
                        <
td><html:text property "nombre" /></td>
                    </
tr>
                    <
tr>
                        <
td>Apellido:</td>
                        <
td><html:text property "apellido" /></td>
                    </
tr>
                    <
tr>
                        <
td>FecNac.:</td>
                        <
td><html:text property "nacimiento" /></td>
                    </
tr>
                    <
tr>
                        <
td>Pais:</td>
                        <
td><html:select property "pais">
                                <
html:option value "Argentina">Argentina</html:option>
                                <
html:option value "Venezuela">Venezuela</html:option>
                        </
html:select></td>
                    </
tr>
                    <
tr>
                        <
td>Ciudad:</td>
                        <
td><html:select property "ciudad">
                                <
html:option value "Acarigua">Acarigua</html:option>
                                <
html:option value "Maracay">Maracay</html:option>
                        </
html:select></td>
                    </
tr>
                    <
tr>
                        <
td>Sexo:</td>
                        <
td><html:radio property "sexo" value "Masculino">Masculino</html:radio>
                            <
html:radio property "sexo" value "Femenino">Femenino</html:radio>
                        </
td>
                    </
tr>
                    <
tr>
                        <
td>Prefesi&#243;n:</td>
                        
<td><html:select property "profesion">
                                <
html:optionsCollection name "listaProfesion" value "id" label "descripcion" />
                            </
html:select>
                        </
td>
                    </
tr>
                    <
tr>
                        <
td>Login:</td>
                        <
td><html:text property "login" /></td>
                    </
tr>
                    <
tr>
                        <
td>Password:</td>
                        <
td><html:password property "password" /></td>
                    </
tr>
                    <
tr>
                        <
td colspan "2"><html:checkbox property "acepta">Acepto los t&#233;rminos y condiciones</html:checkbox></td>
                    
</tr>
                    <
tr>
                        <
td></td>
                        <
td><html:submit value "Aceptar" /></td>
                    </
tr>
                </
tbody>
            </
table>
        </
html:form>

    </
body>
</
html
Lo resaltante de este codigo -JSP es el siguiente:
Código PHP:
<html:select property "profesion">
                                <
html:optionsCollection name "listaProfesion" value "id" label "descripcion" />
                            </
html:select
Por otro lado tengo la clase ActionForm que es la siguiente:
Código PHP:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.myapp.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import java.util.ArrayList;

/**
 *
 * @author root
 */
public class ClientesForm extends org.apache.struts.action.ActionForm {

    private 
String cedula;
    private 
String nombre;
    private 
String apellido;
    private 
String nacimiento;
    private 
String login;
    private 
String password;
    private 
boolean acepta;
    private 
String sexo;
    private 
String pais;
    private 
String ciudad;
    private 
String profesion;

    public 
String getProfesion() {
        return 
profesion;
    }

    public 
void setProfesion(String profesion) {
        
this.profesion profesion;
    }

    public 
boolean isAcepta() {
        return 
acepta;
    }

    public 
void setAcepta(boolean acepta) {
        
this.acepta acepta;
    }

    public 
String getApellido() {
        return 
apellido;
    }

    public 
void setApellido(String apellido) {
        
this.apellido apellido;
    }

    public 
String getCedula() {
        return 
cedula;
    }

    public 
void setCedula(String cedula) {
        
this.cedula cedula;
    }

    public 
String getCiudad() {
        return 
ciudad;
    }

    public 
void setCiudad(String ciudad) {
        
this.ciudad ciudad;
    }

    public 
String getLogin() {
        return 
login;
    }

    public 
void setLogin(String login) {
        
this.login login;
    }

    public 
String getNacimiento() {
        return 
nacimiento;
    }

    public 
void setNacimiento(String nacimiento) {
        
this.nacimiento nacimiento;
    }

    public 
String getNombre() {
        return 
nombre;
    }

    public 
void setNombre(String nombre) {
        
this.nombre nombre;
    }

    public 
String getPais() {
        return 
pais;
    }

    public 
void setPais(String pais) {
        
this.pais pais;
    }

    public 
String getPassword() {
        return 
password;
    }

    public 
void setPassword(String password) {
        
this.password password;
    }

    public 
String getSexo() {
        return 
sexo;
    }

    public 
void setSexo(String sexo) {
        
this.sexo sexo;
    }

    
/**
     *
     */
    
public ClientesForm() {
        
super();
        
// TODO Auto-generated constructor stub
    
}

    
/**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param request The HTTP Request we are processing.
     * @return
     */
    
public ActionErrors validate(ActionMapping mappingHttpServletRequest request) {
        
ActionErrors errors = new ActionErrors();
//        if (getName() == null || getName().length() < 1) {
//            errors.add("name", new ActionMessage("error.name.required"));
//            // TODO: add 'error.name.required' key to your resources
//        }
        
return errors;
    }


Última edición por Vanessita; 22/01/2009 a las 20:51
  #11 (permalink)  
Antiguo 22/01/2009, 20:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Por otro lado tengo la clase Action

Código PHP:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.myapp.struts;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import java.util.ArrayList;

/**
 *
 * @author root
 */
public class ClientesAction extends org.apache.struts.action.Action {
    
    
/* forward name="success" path="" */
    
private final static String EXITOSO "exitoso";
    private final static 
String FALLIDO "fallido";
    
    
/**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
    
public ActionForward execute(ActionMapping mappingActionForm form,
            
HttpServletRequest requestHttpServletResponse response)
            
throws Exception {

        
//Cargamos la lista con las profesiones
        
Profesion profesion;
        
ArrayList listaProfesion = new ArrayList();

        
profesion = new Profesion();
        
profesion.setId("001");
        
profesion.setDescripcion("Ingeniero");
        
listaProfesion.add(profesion);

        
profesion = new Profesion();
        
profesion.setId("002");
        
profesion.setDescripcion("Abogado");
        
listaProfesion.add(profesion);

        
request.getSession().setAttribute("listaProfesion"listaProfesion);

        return 
mapping.findForward(EXITOSO);
    }

Aqui creo que la parte resaltante sera el metodo execute donde cargo la lista:

Código PHP:
    public ActionForward execute(ActionMapping mappingActionForm form,
            
HttpServletRequest requestHttpServletResponse response)
            
throws Exception {

        
//Cargamos la lista con las profesiones
        
Profesion profesion;
        
ArrayList listaProfesion = new ArrayList();

        
profesion = new Profesion();
        
profesion.setId("001");
        
profesion.setDescripcion("Ingeniero");
        
listaProfesion.add(profesion);

        
profesion = new Profesion();
        
profesion.setId("002");
        
profesion.setDescripcion("Abogado");
        
listaProfesion.add(profesion);

        
request.getSession().setAttribute("listaProfesion"listaProfesion);

        return 
mapping.findForward(EXITOSO);
    } 
La cuestion como ya lo he planteado es que no se exactamente en donde tengo que cargar la lista, yo lo hago en el execute del Action pero igual me da error.

Cualquier cosa si es necesario yo subo el proyecto en NetBeans para que lo vean, pero yo se que es algun detalle que me falta.


Saludos y gracias por su tiempo en especial Bunburyscom.
  #12 (permalink)  
Antiguo 26/01/2009, 07:09
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola!

Aun no he podido solucionar mi problema, sin embargo he descubierto algo, primero tratare de explicar nuevamente
que es lo que estoy haciendo.

En una pagina Clientes.jsp tengo la siguiente etiqueta de struts.

Código PHP:
<html:select property "profesion">
                                <
html:optionsCollection name "listaProfesion" value "id" label "descripcion" />
                            </
html:select
Cuando hago click en el boton de esta pagina (submit) me lleva a otra pagina Exitoso.jsp en donde muestro lo que
el usuario haya seleccionado en Clientes.jsp.

En el metodo execute de la clase Action tengo el siguiente codigo para cargar la lista listaProfesion que carga
el combo en Clientes.jsp

Código PHP:
    public ActionForward execute(ActionMapping mappingActionForm form,
            
HttpServletRequest requestHttpServletResponse response)
            
throws Exception {

        
//Cargamos la lista con las profesiones
        
Profesion profesion;
        
ArrayList listaProfesion = new ArrayList();

        
profesion = new Profesion();
        
profesion.setId("001");
        
profesion.setDescripcion("Ingeniero");
        
listaProfesion.add(profesion);

        
profesion = new Profesion();
        
profesion.setId("002");
        
profesion.setDescripcion("Abogado");
        
listaProfesion.add(profesion);

        
request.getSession().setAttribute("listaProfesion"listaProfesion);

        return 
mapping.findForward(EXITOSO);
    } 
La idea es que cuando cargue Clientes.jsp por primera vez ya la lista este cargada para que el combo ya tenga la
lista de las profesiones, sin embargo cuando hago esto, o sea Click derecho sobre el proyecto - Run en el NetBeans
siempre obtengo el error que les he mencionado.

Sin embargo quite la etiqueta

Código PHP:
<html:select property "profesion">
                                <
html:optionsCollection name "listaProfesion" value "id" label "descripcion" />
                            </
html:select
de la pagina Clientes.jsp y la coloque en Exitoso.jsp, cuando hago submit en Clientes.jsp y me llama a Exitoso.jsp
alli si me carga el combo tal y como lo quiero, sin errores.

Al parecer el metodo execute de la clase Action se ejecuta cuando yo hago click en el boton submit y este me llama a
Exitoso.jsp, por eso se carga la lista, en cambio cuando Clientes.jsp carga, parece que el metodo execute no se ejecuta,
y por eso es que me da el error que les he comentado, alguien sabe que puedo hacer??

Espero haberme explicado.

Gracias por adelantado...
  #13 (permalink)  
Antiguo 26/01/2009, 07:50
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <html:select> + struts

Por lo que estás contando, me da la sensación de que estás llegando directamente a Clientes.jsp directamente. Y la carga de la lista de profesiones la estás haciendo en la Acción que se ejecuta después. ¿Es así?

Si es así, entonces creo que está claro por qué no se carga, ¿no?

El funcionamiento de Struts es que llamas a una acción, esa acción prepara los datos que haya que preparar y luego presenta la vista (jsp) que corresponda. Si accedes directamente a una vista sin pasar por ninguna acción, pues tendrá que ser una vista que no tenga ningún dato que mostrar.



En fin, que lo que tienes que hacer es un flujo como esto:

- Llamas a blablabla.com/RegistroClientes
- Eso accede a RegistroClientesAction. Es aquí donde cargas la lista y configuras como vista a mostrar tu Clientes.jsp
- Cuando se presenta Clientes.jsp entonces sí que estará cargada la lista de profesiones.


Recuerda, siempre (salvo excepciones muy claras) el esquema a seguir debe ser:

1. Llamar a un Action -> El Action carga datos -> Se presenta la Vista (jsp)

Serán pocas las veces que tengas que llamar a un JSP sin pasar antes por un Action.
  #14 (permalink)  
Antiguo 26/01/2009, 08:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Respuesta: <html:select> + struts

Hola venkman!
Gracias por responder.

Cita:
Iniciado por venkman Ver Mensaje
Por lo que estás contando, me da la sensación de que estás llegando directamente a Clientes.jsp directamente. Y la carga de la lista de profesiones la estás haciendo en la Acción que se ejecuta después. ¿Es así?
Es correcto, así es.


Cita:
Iniciado por venkman Ver Mensaje
En fin, que lo que tienes que hacer es un flujo como esto:

- Llamas a blablabla.com/RegistroClientes
- Eso accede a RegistroClientesAction. Es aquí donde cargas la lista y configuras como vista a mostrar tu Clientes.jsp
- Cuando se presenta Clientes.jsp entonces sí que estará cargada la lista de profesiones.

Disculpa pero no te he entendido muy bien, en ese caso quien es blablabla.com/RegistroClientes? un .jsp? Cómo accedería eso
a RegistroClientesAction?

Lo que pasa es que en este caso, así como dices, estoy llegando directamente a Clientes.jsp y en el necesito tener cargada
la lista de profesiones, y luego este form va a enviar a otro lo que el usuario haya seleccionado, pero claro yo entiendo
que mi lista en este caso no está cargada ya que no ha pasado por el Action, pero no he entendido muy la la solucion que me
has dado.


Muchas gracias por responder.
  #15 (permalink)  
Antiguo 26/01/2009, 08:51
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <html:select> + struts

RegistroClientes es una acción, que defines en el struts-config.xml

A ver, en el formulario que tienes en Clientes.jsp llamas a una acción, no? /Clientes
Bueno, pues tienes que hacer otra acción. Le he puesto como URL /RegistroClientes por poner algo. Pero llámala como quieras.
  #16 (permalink)  
Antiguo 26/01/2009, 09:14
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola.
Gracias de nuevo por responder.

Si en el formulario Clientes.jsp llamo a una accion /Clientes.
Y esa nueva accion desde donde la voy a llamar? Desde mi formulario de clientes?

Saludos...
  #17 (permalink)  
Antiguo 26/01/2009, 10:28
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Hola,

Asi es, ese Action va en el formulario de tu jsp.

Y opino lo mismo que venkman, para mostrar una jsp trata siempre de pasar por un Action, aunque no hagas nada y aunque sooo hagas un simple forward.

saludos!
  #18 (permalink)  
Antiguo 26/01/2009, 11:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola Bunburyscom!

Gracias por responder.

Y como voy a hacer para llamar a ese Action de forma que cuando la pagina cargue se pueda cargar la lista?


Saludos...
  #19 (permalink)  
Antiguo 26/01/2009, 11:24
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Y nada mas tienes esas dos jsp's??

La idea es poner un link en una pagina que te lleve a tu jsp Clientes.jsp, pero ese link debe de mandar a llamar a tu Action y en ese Action cargas tu lista y despues mandas a llamar a tu jsp de Clientes

<html:link page="/algo.do">Link</html:link>
  #20 (permalink)  
Antiguo 26/01/2009, 11:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Respuesta: <html:select> + struts

Cita:
Iniciado por Bunburyscom Ver Mensaje
Y nada mas tienes esas dos jsp's??
Sip jeje, lo que pasa es que realmente es un ejercicio que estoy tratando de hacer para ir aprendiendo Struts. Pues bien, entonces lo haré como me lo han comentado,
voy a llamar a esta página desde otra mediante un link.

Pero entonces quiero preguntar, como hago yo para cargar este tipo de informacion por ejemplo en la pagina principal de un sitio, por ejemplo en el index.jsp?
Que pasa si en esta pagina necesito ir a la base de datos y cargar una lista como en este caso?


Saludos y gracias nuevamente por la ayuda...
  #21 (permalink)  
Antiguo 26/01/2009, 13:07
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Pues normalmente en el index te loggeas con un usuario y passwordy a partir de ahi vas navegando en el sistema con tus Actions.
  #22 (permalink)  
Antiguo 26/01/2009, 13:21
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <html:select> + struts

Otra cosa que se hace normalmente es que http://loquesea.com/ no se traduce en http://loquesea.com/index.jsp (un jsp) sino en http://loquesea.com/index.do (una acción)
  #23 (permalink)  
Antiguo 26/01/2009, 14:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Respuesta: <html:select> + struts

Lo que pasa es que generalmente en el index.jsp se necesita cargar informacion de una BD y esto me imagino que hay que
tenerlo en un Action, creo que más que todo por eso es que me gustaría saber como manejar esto cuando se llega directamente
a una .jsp como en el caso del index.


Cita:
Iniciado por venkman Ver Mensaje
Otra cosa que se hace normalmente es que http://loquesea.com/ no se traduce en http://loquesea.com/index.jsp (un jsp) sino en http://loquesea.com/index.do (una acción)
Y cómo hago eso? Eso es lo que quiero saber? action.do quien sería?


PD: disculpen si he preguntado mucho, pero es que no tengo mi proyecto aca para ir haciendo las pruebas ya que estoy
en el trabajo y sera en la noche cuando ponga en practica lo que me han dicho.


Saludos y gracias por sus respuestas.
  #24 (permalink)  
Antiguo 26/01/2009, 14:44
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

action.do es una referencia que tienes guardada en el archivo struts-config.xml donde le asocias una clase Action, un ActionForm, etc
  #25 (permalink)  
Antiguo 27/01/2009, 06:44
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Hola!
He intentado lo que me has dicho pero no he podido.

Cree otra página, index.jsp, en ella he agregado un

<html:link page="/Clientes.do">Link</html:link>

Ya no me da el error que les he estado diciendo, sin embargo no pasa nada,
la página Clientes.jsp no muestra nada, de hecho no me muestra ningun control.

Es que no se muy bien quien es /Clientes.do, como hago para llamar a un Action desde
index.jsp de forma que se cargue la lista? Tengo que crear otro ActionForm y otro Action
para esta pagina?


Saludos...
  #26 (permalink)  
Antiguo 27/01/2009, 07:06
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <html:select> + struts

¿Estás siguiendo algún tutorial o manual o algo?
  #27 (permalink)  
Antiguo 27/01/2009, 07:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 14
Antigüedad: 17 años
Puntos: 0
Respuesta: <html:select> + struts

Hola que tal, mira sobre la situacion que tienes, yo la he realizado de la siguiente forma:

Código PHP:
<select  id="xxxx" name="xxxx">
<
logic:iterate name="listaPaises" id="lista">
<
option value="<bean:write name="lista" property="id"/>"> <bean:write name="lista" property="desc"/></option>
</
logic:iterate>
</
select

Esta forma tambien te sirve para recorrer tu lista y mostrarla, como te dijeron mas arriba cuando setees tu lista, no lo hagas por sesion, hazlo como escribieron mas arriba:

Código PHP:
request.setAttribute("listaPaises",li staPaises); 
  #28 (permalink)  
Antiguo 27/01/2009, 07:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: <html:select> + struts

Realmente no, estoy haciendo algo por mi cuenta.
  #29 (permalink)  
Antiguo 27/01/2009, 08:04
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <html:select> + struts

Pues igual es conveniente que sigas algún tutorial, ejemplo, manual...
  #30 (permalink)  
Antiguo 27/01/2009, 08:34
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: <html:select> + struts

Hola,

Tu link aparece asi: http://localhost:8080/aplicacion/Cleintes.do

En el struts-config.xml debes de tener mapeado el Clientes.do

<form-beans>
<form-bean name="clientesForm" type="com.ClientesForm"/>
</form-beans>


<action path="/Clientes" name="clientesForm" type="com.ClientesAction" >
<forward name="clientes" path="/Clientes.jsp" />


Y en tu clase ClientesAction deberias de tener algo asi:

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

// Cargas tu lista como lo has estado haciendo y al final haces el return

return mapping.findForward("clientes");

}

No se si funcione ya que solo lo escribi y no lo probe, seria cosa que agregaras lo que te hiciera falta.

Ahi nos cuentas.

saludos!
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 00:12.