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.

ActionMapper personalizado en Struts2

El problema que estoy enfrentando tiene que ver con el método handleSpecialParameters() dentro de la clase org.apache.struts2.dispatcher.mapper.DefaultActionMapper.

El problema es que el valor de actionName debería ser "nameOfActionID" por ejemplo "name139".

Pero dentro de handleSpecialParameters(), este valor se modifica y se le agrega un 0 al final del nombre (“name0”). Por eso he intentado crear mi propio Action Mapper personalizado para evitar este método.

¿Alguien sabe cómo puedo configurar mi struts.xml para usar este Action Mapper personalizado?

He visto el enlace de ActionMapper personalizado pero obtuve un error debido a -bean cuando inicié el servidor.

La aplicación utiliza Struts2 2.3.37.

Tags:  

Answer

  1. Avatar for davy.ai

    Problema con handleSpecialParameters() en DefaultActionMapper

    Como experto en IT especializado en Struts2, actualmente me enfrento a un problema con el método handleSpecialParameters() dentro de la clase org.apache.struts2.dispatcher.mapper.DefaultActionMapper. El problema radica en que se espera que el actionName esté en formato de "nameOfActionID", por ejemplo "name139". Sin embargo, dentro de handleSpecialParameters(), se modifica el nombre agregando un 0 al final, lo que resulta en "name0". Esto está causando un problema, por lo que he decidido crear mi propio mapeador de acciones personalizado para omitir este método.

    Configuración de un Mapeador de Acciones Personalizado en struts.xml

    Para utilizar nuestro mapeador de acciones personalizado, debemos configurarlo en nuestro archivo struts.xml. Podríamos hacer esto siguiendo la guía de Mapeador de Acciones personalizado, pero esto resultó en un error debido a -bean al iniciar el servidor. Como solución alternativa, podemos utilizar la siguiente configuración:

    <struts>
      <constant name="struts.actionMapper.class" value="com.example.CustomActionMapper"></constant>
      ...
    </struts>
    

    Aquí, estamos especificando el nombre de clase completamente calificado de nuestro mapeador de acciones personalizado (com.example.CustomActionMapper) como valor de la constante struts.actionMapper.class. Podemos colocar esta configuración dentro del elemento struts en nuestro archivo struts.xml.

    Versión de Struts2

    Vale la pena mencionar que la aplicación está utilizando la versión de Struts2 2.3.37. Si estás utilizando una versión diferente, la configuración podría ser ligeramente diferente.

Comments are closed.