La llamada al action es la siguiente:
Código:
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: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;
/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:
En otra jsp me sucedía lo mismo en una llamada ajax, y lo solucioné utilizando la etiqueta <s:url> de la siguiente manera:... <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> ...
Código:
pero aquí no hay manera. ... url: '<s:url value="NewArrivalFlightOptions.action" method="fundirVueloLlegada" /> ...
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