Cannot find bean Customers in any scope

Tengo un optionsCollection en un formulario que me está dando el error mencionado (no encuentra el bean Customers). Soy nuevo en Struts y quisiera entender porque del error.
Ya probé configurando redirect="false" y "true" en struts-config.xml
El código que estoy trabajando es un ejemplo que saqué de la web:
=== JSP ===
<body>
<html:form action="/example">
<h4>Simple use of <html:optionsCollection> Tag</h4>
<html:select property="selectedItem">
<html:optionsCollection name="Customers" value="id" label="name"/>
</html:select>
<html:submit/>
</html:form>
=== ActionForm ===
package pruebas;
import org.apache.struts.action.*;
public class ExampleForm extends ActionForm {
   private String selectedItem;
   public String getSelectedItem() {
      return selectedItem;
  }
  public void setSelectedItem(String selectedItem) {
      this.selectedItem = selectedItem;
  }
}
=== Action ===
package pruebas;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;
public class ExampleAction extends Action {
    public ActionForward execute(
        ActionMapping mapping,
        ActionForm form;
        HttpServletRequest request,
        HttpServletResponse response) {
           Collection customers = new ArrayList();
           cust.add(new Customers(1, "Marie"));
           cust.add(new Customers(2, "Klaus"));
            cust.add(new Customers(3, "Peter"));
            request.setAttribute("customers", cust);
            return mapping.findForward("success");
    }
}
=== Customers ===
package pruebas;
public class Customers {
   public class Customers() {}
   public class Customers(int id, String name) {
      this.id = id;
       this.name = name;
   }
   ... Sets y gets respectivos para id y name
}

1 respuesta

Respuesta
1
Struts no es mi especialidad pero veo que tu clase Coustumers tiene errores al declarar una clase Customers() {} (debe ser el constructor) dentro de la clase Customers... debería ser así:
public class Customers {
     public Customers() {}
     public Customers(int id, String name) {
          this.id = id;
          this.name = name;
     }

... sets y gets respectivos para id y name
}
Si después de corregir eso el problema persiste, lamentablemente no podre ayudarte...
Amigo, ya vi el problema. Se trata de que efectivamente el bean aún no ha sido creado porque no se ha ejecutado aún el Action, ExampleAction en este caso.
Agregué un logic:present name="customer" de tal manera que la página no se me caiga cuando no encuentra el bean. Luego, cuando le doy submit a Example.jsp me muestra el bean cargado con los valores respectivos.
Mi pregunta ahora sería, ¿cómo hago que se ejecute ExampleAction antes de cargar la página? ¿Para qué cree el bean?
Muchas gracias por tu interés,
La verdad es que no puedo ayudarte con tu pregunta... te aconsejo que hagas esta pregunta en la categoría: Tecnología e Internet > Desarrollo de sitios web > JSP
De verdad lo siento y gracias por tu confianza! No olvides finalizar esta pregunta y suerte!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas