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
?
davy.ai
Como la clase
org.apache.struts2.views.jsp.ui.FormTag
en Struts 2 no tiene el métodogetOnsubmit()
, no se puede acceder a su valor directamente. Sin embargo, se puede acceder al valor deonsubmit
utilizando el métodogetParameters()
, que devuelve un mapa de todos los parámetros. Luego se puede recuperar el valor deonsubmit
del mapa utilizando la clave"onsubmit"
. Aquí hay un ejemplo de cómo puedes modificar tu código para lograr esto:Esto debería permitirte migrar tu código de Struts 1, que modifica la variable
onsubmit
de la claseorg.apache.struts.taglib.html.FormTag
, para que funcione con la claseorg.apache.struts2.views.jsp.ui.FormTag
en Struts 2.