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.

Problema de carga de Struts Jquery Grid después de actualizar de Struts 2.5.22 a Struts 2.5.27.

Hola, recientemente hemos actualizado Struts2 de la versión 2.5.22 a la 2.5.27. En nuestra aplicación, estamos usando Struts Jquery Grid y la librería struts2-jquery-grid-plugin-4.0.3.jar.

Uno de los requisitos de nuestra aplicación es asignar un valor dinámico a la propiedad de un objeto al identificador de la tabla. El fragmento de código es el siguiente:

<sjg:grid id="%{#tabGrid.gridId}" caption="%{#tabGrid.gridCaption}" gridmodel="%#tabGrid.gridData}" href="%{gridUrl}--------">

Antes de la actualización, esta pieza de código funcionaba bien. Pero después de la actualización, no podemos asignar la propiedad del objeto al identificador de la tabla. Sin embargo, podemos asignar la propiedad del objeto a la leyenda de la tabla, como se muestra en el fragmento de código anterior. Solo cuando intentamos asignar un valor a la propiedad id, el código deja de funcionar.

He intentado solucionarlo asignando la clase de la tabla a la propiedad del objeto, en lugar del id. Pero este cambio tendrá un gran impacto en nuestro código en la aplicación. ¿Podría sugerir por qué ocurre esto y una posible solución?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para la incapacidad de asignar un valor dinámico al id de la cuadrícula usando una propiedad de bean después de actualizar Struts2 a 2.5.27

    Como experto en informática especializado en Struts2, esta es mi sugerencia:

    Posible razón

    El problema puede ser causado por cambios en la biblioteca OGNL (Object-Graph Navigation Language) utilizada por Struts2. OGNL se utiliza para evaluar expresiones como %{#tabGrid.gridId} y convertirlas en valores de propiedad reales.

    Solución posible

    1. Actualice el complemento struts2-jquery-grid a la última versión compatible con Struts2 2.5.27. A veces, un complemento puede no ser completamente compatible con la versión actualizada de una biblioteca.
    2. Si el paso anterior no funciona, intente escapar las llaves en la expresión del valor de la propiedad de id utilizando una barra invertida (‘\’).

      <sjg:grid id="\%{#tabGrid.gridId}" ...="">

      Esto puede ayudar porque a veces las expresiones OGNL pueden entrar en conflicto con la sintaxis XML.

    3. Una forma alternativa de asignar un valor dinámico al id de la cuadrícula es usar JavaScript para establecer el atributo de id después de cargar la página. Por ejemplo:

      <sjg:grid id="mygrid" ...="">

      De esta manera, aún puede usar la última versión de Struts2 y el complemento sin cambiar mucho código en su aplicación.

    Espero que una de las soluciones anteriores funcione para usted. Hazme saber cómo va.

Comments are closed.