Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2011, 09:05
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
problema con url y struts

Hola, tengo un problema con una url y struts que no sé como resolver. Lo que quiero es, en una jsp, que me abra una ventana con otra jsp, y en esa segunda jsp, rellene unos datos y me vaya a un método en particular de un action. Pero no consigo que me vaya a ese método del action, como mucho me vá al execute. Además si le pongo el método en la url me dice que no encuentra el action o el input asociado.

La llamada al action es la siguiente:

Código:
url = '<s:url  action="NewArrivalFlightOptions" method="fundirVueloLlegada" namespace="/realTime/arrivalFlight"/>' ;
							var parteMala =url.split("?")[1];
							url = url.replace(parteMala, 'idArrivalFlight=9392');
							window.opener.document.location.href=url;
donde le cambio el namespace porque es distinto del de la jsp, y "parteMala" son una serie de parámetros que quiero eliminar. El resultado es el siguiente, visto desde un alert:

/AODB2/realTime/arrivalFlight/NewArrivalFlightOptions!fundirVueloLlegada.action? idArrivalFlight=9392;

Y sin embargo, me dice que no hay acción mapeada así. Y en mi xml tengo:

Código:
...
<action name="NewArrivalFlightOptions"  class="es.indra.aodb.realtime.web.action.arrivalFlight.NewArrivalFlightOptionsAction" method="fundirVueloLlegada">
            <result name="SUCCESS">/jsp/common/_loadJsonErrors.jsp</result>
			<result name="ERROR">/jsp/common/_loadJsonErrors.jsp</result>
			<result name="INPUT">/jsp/common/_loadJsonErrors.jsp</result>
            <result name="loginError">/jsp/application/notLogged.jsp</result>            
        </action>
...
En otra jsp me sucedía lo mismo en una llamada ajax, y lo solucioné utilizando la etiqueta <s:url> de la siguiente manera:

Código:
...
url: '<s:url value="NewArrivalFlightOptions.action" method="fundirVueloLlegada" />
...
pero aquí no hay manera.

Lo único que se me ha ocurrido (teniendo en cuenta que tengo un validate que sólo quiero que valide el execute()), es crear una variable string, y dependiendo de su valor, que no pase por el validate, y en el execute llame al método fundirVueloLlegada() del action, pero no me parece una buena solución, unas "buenas prácticas", tendría que conseguir que llamara al método correcto directamente. Agradecería que alguien me echara una mano.

Muchas gracias, un saludo