Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2016, 14:35
osmaymoya
 
Fecha de Ingreso: agosto-2015
Ubicación: La Habana
Mensajes: 72
Antigüedad: 8 años, 8 meses
Puntos: 4
Exclamación Controlador extiende SimpleActionFormController pasa 2 veces por isFormChangeRequest(

Hola amigos estoy desarrollando con el framework Spring y se me ha presentado la siguiente situacion: tengo un controlador que extiende de la clase SimpleActionFormController y resulta que cuando hago un submit para enviar ciertos datos y guardarlos y luego cargar la misma pagina, pasa 2 veces por la funcion isFormChangeRequest(HttpServletRequest request, Object command) y me guarda los datos 2 veces. Por favor necesito alguien que me ayude pues ya no se que más hacer. Saludos y gracias de antemano.

Código:
@Override
    protected boolean isFormChangeRequest(HttpServletRequest request, Object command)
    {
        data = (CondorScheme)command; //tomo el objeto que llega
        String reason = request.getParameter("reason");
        if (reason != null)
        {
            if (reason.equals("insert") && data.getTempCondor_id()!= null)
            {
                if(!details.equals("-1"))//si detalle no es -1 guardo en base de datos (es un update)
                {
                    data.getSchemeAccountManager().update(data.getTempScheme_Account());
                }
                if(details.equals("-1"))//si es -1 entonces voy llenando la lista de schemeaccount
                {
                    data.InsertSchemeAccount();
                }
            }
            else if (reason.equals("delete"))
            {
                if(!details.equals("-1"))// si es un delete y no es -1 elimino de base de datos
                {
                    data.getTempScheme_Account().setE_status(Entity.Deleted);
                    data.getSchemeAccountManager().update(data.getTempScheme_Account());
                }
                if(details.equals("-1"))// si es -1 entonces elimino de la lista del objeto
                {
                    data.DeleteSchemeAccount(data.getTempScheme_Account().getCondor_id());
                }
            }
        }
        return reason != null && !(reason.equals("normal"));
    }