Código:
Si lo estoy haciendo bien, los pasos serían más o menos:error Status: 'error'. Error code: 404
Primero, en la jsp debería hacer la llamada al action, que está bien porque al action llega.
Segundo, hacer las validaciones necesarias en el validate.
Tercero, tener un fichero xml dónde le diga, según el result elegido, a qué página debe ir. El action es NewStopOverOptions, y éste es mi fichero xml:
Código:
y ésta la página _loadjsonErrors.jsp:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- PARA LLEGADAS --> <package name="stopOver" namespace="/realTime/stopOver" extends="struts-default"> <interceptors> <interceptor name="wireless" class="es.indra.aodb.common.interceptor.AuthorizationInterceptor"/> <interceptor-stack name="wirelessStack"> <interceptor-ref name="wireless" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="wirelessStack" /> <action name="NewStopOver" class="es.indra.aodb.realtime.web.action.stopOver.NewStopOverAction"> <result name="SUCCESS">/jsp/realTime/stopOver/newStopOver.jsp</result> <result name="LOAD_LIST">/jsp/realTime/stopOver/jsonStopOver.jsp</result> <result name="loginError">/jsp/application/notLogged.jsp</result> </action> <action name="NewStopOverOptions" class="es.indra.aodb.realtime.web.action.stopOver.NewStopOverOptionsAction"> <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> </package> </struts>
Código:
luego, en la jsp desde la que llamo al action, tengo una función que recoge éstos valores:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- PARA LLEGADAS --> <package name="stopOver" namespace="/realTime/stopOver" extends="struts-default"> <interceptors> <interceptor name="wireless" class="es.indra.aodb.common.interceptor.AuthorizationInterceptor"/> <interceptor-stack name="wirelessStack"> <interceptor-ref name="wireless" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="wirelessStack" /> <action name="NewStopOver" class="es.indra.aodb.realtime.web.action.stopOver.NewStopOverAction"> <result name="SUCCESS">/jsp/realTime/stopOver/newStopOver.jsp</result> <result name="LOAD_LIST">/jsp/realTime/stopOver/jsonStopOver.jsp</result> <result name="loginError">/jsp/application/notLogged.jsp</result> </action> <action name="NewStopOverOptions" class="es.indra.aodb.realtime.web.action.stopOver.NewStopOverOptionsAction"> <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> </package> </struts>
Código:
Pero algo no va bien puesto que pasa por el validate() del action, lo hace entero, y en lugar de mostrar los errores parece como si no encontrara _loadjsonErrors.jsp, y no lo entiendo, está bien puesto en el xml.//recupera los errores del action y los muestra en la ventana modal function processAddEdit(response, postdata) { var success = true; var mensaje = ""; var json = eval('(' + response.responseText + ')'); if (json.errores) { success = false; var i = 0; for (i = 0; i < json.errores.length; i++) { mensaje += json.errores[i] + '<br/>'; } } return [success,mensaje,""]; }
Si alguien puede echarme una mano, se lo agradecería mucho.
Un saludo