Существуют ли какие-либо фреймворки Java MVC, которые используют шаблоны пути запроса вместо определенных шаблонов URL сервлета? - PullRequest
1 голос
/ 20 сентября 2009

Из того, что я знаю о MVC за пределами мира Java (PHP и Ruby on Rails), все запросы сначала отправляются на фронт-контроллер (или диспетчеру ... или boostrap и т. Д.), И фронт-контроллер смотрит на шаблон пути запроса в URL, чтобы определить, какой класс / метод должен обрабатывать запрос. В Java MVC кажется, что сервлеты отображаются с шаблоном URL в дескрипторе развертывания (web.xml), но расширение файла и шаблон URL не выглядят очень гибкими. Существуют ли какие-либо фреймворки Java MVC, которые используют фронт-контроллер для чтения пути запроса исключительно для определения того, какие классы должны выполняться? Было бы довольно легко взломать Spring MVC, чтобы сделать это? Есть примеры? Спасибо!

Ответы [ 4 ]

3 голосов
/ 20 сентября 2009

Примером одного инструмента, который работает по вашему желанию, является web4j .

По по умолчанию сопоставляет входящие URL-адреса с классом Action, чье имя с указанием пакета довольно естественным образом сопоставляет входящий URL-адрес.

Пример из документации:

  • URL запроса: 'http://www.blah.com/fish/main/member/MemberEdit.list'
  • Извлеченная часть URL: '/ main / member / MemberEdit'
  • Сопоставляет (по умолчанию) с действием: 'hirondelle.fish.main.member.MemberAction.java'

Это пример того, как этот конкретный инструмент выполняет задачу. Поскольку это такая базовая функция веб-приложений, я бы предположил, что почти все такие инструменты имеют схожие механизмы.

Я не большой пользователь Spring, но из его документации видно, что у него есть несколько способов сопоставления запросов с действиями:

1 голос
/ 20 сентября 2009

Проверьте полосы: http://www.stripesframework.org/display/stripes/Quick+Start+Guide

Я рассматривал это как возможное обновление от распорок. На этой странице есть пример, который очень похож на пример web4j, приведенный Джоном О.

1 голос
/ 20 сентября 2009

Я согласен, что сопоставление URL не очень гибкое, но вы можете справиться с сопоставлением с URLRewriteFilter

http://tuckey.org/urlrewrite/

Для этого фильтр работает почти как контроллер.

1 голос
/ 20 сентября 2009

Отображения сервлета Java также могут быть по расширению файла.

Подобно многим не-Java-фреймворкам, вы можете отобразить все запросы в один сервлет, который затем обрабатывает их, но в Java это не поощряется. Это, конечно, возможно.

Если вам нужно больше URL-адресов в стиле REST, в которых вы объявляете сопоставление элементов пути, вы можете обратиться к настройке Spring MVC в Spring 3.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...