2010-09-14 2 views
1

Мне нужна библиотека, которая работает так же, как отображения сервлетов, без контейнера сервлетов. Она должна поддерживать такие понятия, как это:Библиотека поиска, которая извлекает значения на основе путей

/*  maps the default value 
/exact maps exact path maps 
/prefix maps any path that begins with "/prefix" 
*.suffix maps any paths that end with "suffix". 

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

Кто-нибудь знает библиотеку, которая делает что-то вроде этого?

+0

Можете ли вы привести пример обратного вызова, который вы сделаете в этой библиотеке? – oksayt

ответ

0

Я закончил тем, исправляя свой маленький пакет, который использует цепочку responsbility шаблона. Он группирует точные совпадения, которые последовательно добавляются в одну ссылку (не уверен, какой элемент eacch в cor называется) в цепочке. Все другие типы сопоставления - это одиночные «ссылки». Поиск вызывает цепочку до тех пор, пока значение не будет возвращено, игнорируя остальную часть цепочки.

-1

Spring MVC поддерживает Ant-style globs в сопоставлениях путей запроса. В вашем классе контроллера (с аннотацией @Controller), вы можете указать свой шаблон пути в the RequestMapping annotation на вашем методе обработчика, как это:

@Controller 
public class HelloWorldController { 

    @RequestMapping("/myPath/*.do") 
    public ModelAndView helloWorld() { 
     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("helloWorld"); 
     mav.addObject("message", "Hello World!"); 
     return mav; 
    } 
} 
+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^