Даже не используя Tapestry, я бы сказал, что любые две платформы должны иметь возможность сосуществовать, потому что в web.xml
вы определяете, как URL-адреса отображаются на сервлеты / фильтры. Например, в Wicket есть фильтр, который проверяет классы Wicket, которые реализуют обработчик запросов. Если ничего не найдено, запрос передается по цепочке. Это позволит вам продолжать использовать Struts для определенных действий.
Если у вас есть несколько URL-адресов, которые вы хотите сохранить, вы можете просто изменить действие Struts для пересылки на новый внутренний URL-адрес; в конечном итоге все ваши действия с Struts, по сути, будут действиями по перезаписи URL, и вы можете просто удалить структуры и заменить их фильтром перезаписи URL.
Если ни один из ваших новых URL-адресов не будет конфликтовать с вашими старыми URL-адресами, то ничего сложного сделать не придется. Просто настройте новый фреймворк и обработчики его запросов. При обнаружении действия Struts (/doSomething.do
) Struts ActionServlet
отправляет запрос в действие. В struts-config.xml
вы можете пересылать в нужное место, либо JSP, либо плитку, либо URL-адрес гобелена. Я предполагаю, что в Tapestry есть способ переадресовать на произвольный URL после того, как вы закончите обработку запроса; просто перейдите к действию Struts, если вам нужно.
Единственная проблема, которую я могу предвидеть, заключается в том, что Struts и Tapestry имеют противоречивые требования для сторонних библиотек. Если это не сработает, вам может быть не повезло в любой простой миграции.