JSP (Java Server Page) - Problema de concepto de iterate y struts

 
Vista:

Problema de concepto de iterate y struts

Publicado por Agustin (1 intervención) el 02/06/2006 09:40:21
Buenas a todos.

Os comento en que puntos nos encontramos para ver si puedes ayudarnos.

Tenemos implementado struts 1.2 con hibernate 3.1. Nuestras herramientas son Eclipse y MyEclipse. Estamos probando con una tabla normal sin foreign key.

El mapeo de la tabla con hibernate y la lógica de negocio para la manipulación de las tablas esta probado y va correctamente.

Comento paso a paso lo que se realiza con el código:

Primeramente se llama al forward showTKA. El servlet ejecuta en consecuencia el execute del ShowTKAAction.java:

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
System.out.println("action");

ShowTKAForm showTKAForm = (ShowTKAForm) form;
GestionTKAPP gestionAPP = new GestionTKAPP();
showTKAForm.setAplicaciones(gestionAPP.getAplicaciones());
// TODO Auto-generated method stub
return mapping.findForward("showListaTKA");
}

La lógica de negocio (GestionTKAPP.getAplicaciones()) devuelve los datos de la tabla correctamente asignandoselos al atributo del form ShowTKAForm:

public class ShowTKAForm extends ActionForm {
private TKitAplicacion[] tkapp = new TKitAplicacion[0];;
public void reset(ActionMapping mapping, HttpServletRequest request) {
tkapp = new TKitAplicacion[0];
// TODO Auto-generated method stub
}

public TKitAplicacion[] getAplicaciones(){
return tkapp;
}

public void setAplicaciones(TKitAplicacion[] tka){
this.tkapp = tka;
}
}

La acción de showListaTKA redirije hacia el jsp que muestra los datos con codificación:
<%@ page language="java"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>

<html>
<head>
<title>JSP for ShowTKAForm form</title>
</head>
<body>
<table border="1">
<tbody>
<tr>
<td>kapCodigo</td>
<td>kapDescripcion</td>
</tr>
<%-- start with an iterate over the collection books --%>
<logic:iterate name="showTKAForm" property="tkapps" id="tkapp">
<tr>
<%-- book informations --%>
<td><bean:write name="tkapp" property="kapCodigo" /></td>
<td><bean:write name="tkapp" property="kapDescripcion" /></td>
</tr>
</logic:iterate>
<%-- end interate --%>
<logic:notPresent name="tkapp">
<tr> <td colspan="5"> No encuentra aplicaciones. </td> </tr>
</logic:notPresent>
</tbody>
</table>
</body>
</html>

Te remito tambien el fichero struts-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />

<form-beans >
<form-bean name="showTKAForm" type="libreria.struts.form.ShowTKAForm" />
</form-beans>

<global-exceptions /> <global-forwards >

<forward
name="inicio"
path="/default.do"
redirect="true" />

<forward name="showTKA" path="showTKA.do" redirect="true" />

<forward
name="showListaTKA"
path="/jsp/showTKA.jsp"
redirect="true" />
</global-forwards>

<action-mappings >
<action
forward="/jsp/index.jsp"
path="/default"
unknown="true" />

<action
attribute="showTKAForm"
name="showTKAForm"
path="/showTKA"
scope="request"
type="libreria.struts.action.ShowTKAAction"
validate="false" />
</action-mappings>
<message-resources parameter="libreria.struts.ApplicationResources" />
</struts-config>

El error que nos da es el siguiente:

13:22:59,698 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception

javax.servlet.jsp.JspException: Cannot find bean showTKAForm in any scope
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:934)
at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:232)
at org.apache.jsp.jsp.showTKA_jsp._jspService(showTKA_jsp.java:89)
etc…………

Hemos verificado rutas y estan correctas. Parece que el problema esta en el iterate del jsp que muestra los datos pero despues de cambiarlo muchas veces nos sigue dando el mismo error.

Este error desaparece si ponemos anteriormente del iterate, el <logic:present name="showTKAForm"> pero no nos muestra datos aunque si los tenga realmente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder