2010-10-07 1 views
0

У меня есть веб-приложение Groovy, которое НЕ развертывается в Google приложении. (GAE) Я использовал Gaelyk раньше, и мне нравится функция маршрутизации URL-адресов described in their docИспользование маршрутизации URL-адресов Gaelyk в приложении с движком не для Google приложений

Как переносить только функцию маршрутизации из Gaelyk в основное приложение Groovy WEB, которое не используется в GAE?

Примечание 1: Я также не хочу использовать Grails для этого приложения.

Примечание 2: Я не возражаю, включая гайлик gaelyk, но я скорее не включаю ничего из GAE.

+0

вы должны быть более конкретными с вашей проблемой. В документации объясняется, как использовать функциональность сопоставления ... какая конкретная проблема реализации у вас есть? –

+0

Я хочу использовать аспект маршрутизации из gaelyk для использования в приложении без gaelyk. – Tihom

ответ

2

Если вы хотите, чтобы это реализовать себя в своих собственных, не рамках GAE, лучшее место для начала было бы источник ...

Для начала, вам нужен класс, который расширяет javax.servlet.Filter в Gaelyk, это RoutesFilter class

Как вы можете видеть, в init методе фильтра, это вызывает loadRoutes который загружает ваш routes.groovy скрипт через GroovyShell.

Эта оболочка использует другую classes in that same package, так что она заканчивается заполнением свойства List<Route> routes в фильтре экземпляром Route class.

Фильтр (when configured by web.xml) затем перехватывает все запросы на сервер, проверяет URI по каждому маршруту поочередно (путем вызова метода forUri для каждого маршрута), и если совпадение найдено, оно перенаправляет или пересылает по мере необходимости.

Если совпадение не найдено, фильтр calls the next filter down the chain в контексте веб-сервера.

Надеюсь, это ответит на ваш вопрос.