Conversión gradual de puntales a tapiz 5

Tengo una aplicación Struts (1.3.8) que me gustaría convertir a Tapestry 5. Probablemente no haya tiempo para hacer la conversión completa de una sola vez. Me gustaría ofrecer una nueva funcionalidad en Tapestry y convertir Struts / JSP existentes según lo permita el tiempo. ¿Alguien ha intentado algo como esto? ¿Pueden coexistir Struts y Tapestry?

Respuesta 1

Sin usar nunca Tapiz, diría que cualquiera de los dos marcos debería poder coexistir porque al web.xmldefinir cómo se asignan las URL a servlets / filtros. Por ejemplo, en Wicket hay un filtro que busca las clases de Wicket que implementan el controlador de solicitudes. Si nada coincide, la solicitud se pasa por la cadena. Esto le permitiría continuar usando Struts para ciertas acciones.

Si tiene algunas URL que desea conservar, puede cambiar la acción Struts para reenviar a la nueva URL interna; eventualmente, todas sus acciones de struts serán, esencialmente, acciones de reescritura de url, y puede simplemente extraer struts y reemplazarlo con un filtro de reescritura de url.

Si ninguna de sus nuevas URL entrará en conflicto con sus antiguas URL, entonces no hay nada difícil de hacer. Simplemente configure el nuevo marco y sus manejadores de solicitudes. Cuando se encuentra una acción de struts ( /doSomething.do), Struts ActionServletenviará la solicitud a la acción. En el struts-config.xmlpuede reenviar al lugar correcto, ya sea un JSP o un mosaico o una URL de tapiz. Me imagino que hay una manera, en Tapestry, de reenviar a una url arbitraria después de que hayas terminado de procesar una solicitud; simplemente avance a una acción Struts si es necesario.

El único problema difícil que puedo prever es si Struts y Tapestry tienen requisitos contradictorios para las bibliotecas de terceros. Si eso no funciona, es posible que no tenga suerte para cualquier tipo de migración fácil.

Respuesta: 2

Si hiciste Struts de la forma en que la mayoría de la gente lo hace, probablemente tengas todas tus URL de Struts comenzando con / action o terminando con .do. Como señalaron el Sr. Shiny y New, eso significa que puede filtrar diferentes URL con el filtro Tapestry y el filtro Struts o servlet. He usado ambos y le recomendaría encarecidamente que intente evitar que Tapestry tenga que lidiar con las URL de Struts. Con Struts, puede codificar a mano la URL, por lo que no debería ser un problema vincular a las páginas de Tapestry, pero si desea que Tapestry vuelva a vincular a las URL de Struts, puede tener problemas para usarla de la manera estándar. Idealmente, puede dividir una parte de su aplicación (como las funciones administrativas internas) y hacer que sean completamente independientes.

Respuesta: 3

Quiero crear una colección de tipo A a partir de tipo B, utilizando secuencias. Supongamos que tengo dos clases Class Employee {String firstName; Cadena apellido; int edad; ID de cadena; Cadena de correo electrónico; ...

He usado Spring AOP antes, pero no estoy seguro de si ese es el mejor método para solucionar este problema. Hay una clase de capa de servicio que tiene DAO con cableado automático para guardar un objeto. Cuando un objeto es ...

Si extiendo una clase que implementa Serializable, ¿necesito que esa clase también implemente Serializable? Por ejemplo, si tengo, la clase pública classToBeExtended implementa Serializable Entonces esto ...

Quiero poder usar CTRL-SHIFT-T para abrir un Tipo Java (archivo de código fuente) desde cualquier perspectiva en Eclipse. Desafortunadamente, la combinación de teclas solo funciona en la perspectiva de Java. Traté de definir el ...