Foros del Web » Programando para Internet » Javascript »

validate struts2 con jqgrid no funciona

Estas en el tema de validate struts2 con jqgrid no funciona en el foro de Javascript en Foros del Web. Hola, estoy teniendo un problema con las validaciones de struts2 y jqgrid. Cuando va desde la jsp al action, pasa en el action por el ...
  #1 (permalink)  
Antiguo 23/11/2011, 02:55
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
validate struts2 con jqgrid no funciona

Hola, estoy teniendo un problema con las validaciones de struts2 y jqgrid. Cuando va desde la jsp al action, pasa en el action por el validate, y si todo vá bien, por el método que sea, luego vuelve a la jsp y todo está correcto. Pero cuando en el validate encuentra un error, termino obteniendo el error:

Código:
error Status: 'error'. Error code: 404
Si lo estoy haciendo bien, los pasos serían más o menos:
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:
<?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>
y ésta la página _loadjsonErrors.jsp:

Código:
<?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>
luego, en la jsp desde la que llamo al action, tengo una función que recoge éstos valores:

Código:
//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,""];
}
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.

Si alguien puede echarme una mano, se lo agradecería mucho.

Un saludo

Etiquetas: input, jqgrid, js, struts2, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:13.