Замена дляв web.xml и Spring MVC - PullRequest
       32

Замена дляв web.xml и Spring MVC

0 голосов
/ 07 февраля 2012

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

Есть ли способ, как написать такой парсер URL, который бы получал строку и возвращал объект, представляющий текущий запрос, который заменил бы? Мне удалось найти только простые учебники, в которых используется только URL-маршрутизация, определенная в web.xml.

Спасибо

1 Ответ

1 голос
/ 07 февраля 2012

Spring чрезвычайно гибок, поэтому вы можете настроить разбор URL.Взгляните на этот учебник http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch16s11.html, обратите внимание на DefaultAnnotationHandlerMapping и AnnotationMethodHandlerAdapter.Кажется, вы должны изучить, как они работают, и переопределить некоторые функции.

Но прежде чем начать, подумайте еще раз.Вам это действительно нужно и @RequestMapping вас не удовлетворяет?В самом деле, вы можете использовать переменную пути {myvar} в определении шаблона URL.Переменные могут быть разных типов, включая перечисления.Я использовал это и нашел очень удобным.Вы можете, например, создать enum MyType ONE, TWO;определить абстрактный метод на уровне перечисления и переопределить его для каждого элемента.Затем вы можете использовать переменную пути типа MyType в отображении запроса и вызывать этот метод непосредственно из метода, отмеченного аннотацией @RequesteMapping.

...