es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Durante la migración de Struts 1 a Struts 2, la clase FormTag en Struts 2 no cuenta con un método getOnsubmit.

Estoy realizando una migración de Struts 1 a Struts 2. Tenemos código de Struts 1 que ha extendido y personalizado el org.apache.struts.taglib.html.FormTag. Hice una búsqueda y encontré que el equivalente en Struts2 es el org.apache.struts2.views.jsp.ui.FormTag.

Mi código actual de Struts 1 modifica la variable onsubmit del FormTag llamando a setOnsubmit(), pero lo hace primero realizando un getOnsubmit() como se muestra a continuación.

    if (this.getOnsubmit() == null) {
        this.setOnsubmit(subCmd + subCmdEnd);
    }
    else {
        this.setOnsubmit(subCmd + this.getOnsubmit() + subCmdEnd);
    }

La clase de Struts 2 tiene el método setOnsubmit(), pero no tiene el método getOnsubmit(). ¿Tenemos alguna otra opción disponible para leer el valor de onsubmit?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como la clase org.apache.struts2.views.jsp.ui.FormTag en Struts 2 no tiene el método getOnsubmit(), no se puede acceder a su valor directamente. Sin embargo, se puede acceder al valor de onsubmit utilizando el método getParameters(), que devuelve un mapa de todos los parámetros. Luego se puede recuperar el valor de onsubmit del mapa utilizando la clave "onsubmit". Aquí hay un ejemplo de cómo puedes modificar tu código para lograr esto:

    if (getParameters().get("onsubmit") == null) {
        setOnsubmit(subCmd + subCmdEnd);
    } else {
        setOnsubmit(subCmd + getParameters().get("onsubmit") + subCmdEnd);
    }
    

    Esto debería permitirte migrar tu código de Struts 1, que modifica la variable onsubmit de la clase org.apache.struts.taglib.html.FormTag, para que funcione con la clase org.apache.struts2.views.jsp.ui.FormTag en Struts 2.

Comments are closed.