Spring Servlet Mapping из * .html в сопоставление типов SO - PullRequest
1 голос
/ 16 мая 2011

У меня есть весеннее приложение с одним сервлетом, у которого URL-отображение * .html. Все отлично работает с моими аннотированными контроллерами.

Мой вопрос заключается в том, как настроить сервлет и аннотированные сопоставления для имитации URL-адресов, например StackOverflow?

Я хотел бы перейти к URL-адресу без расширения и, если возможно, добавить описание после финальной версии. / .1005*

Пример:

У меня сейчас есть:

/appName/parm1/parm2/pageName.html

Я бы хотел иметь

/appName/parm1/parm2/pageName/description

Возможно ли это и что мне нужно делать с моими аннотированными контроллерами?

Спасибо

1 Ответ

1 голос
/ 16 мая 2011

Вы должны иметь возможность отобразить сервлет диспетчера на / * или что-то в этом роде, а затем использовать @PathVariables для получения необходимой информации из URI.Посмотрите на http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html и найдите @PathVariable.Вот пример с этой страницы

@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
  Owner owner = ownerService.findOwner(ownerId);  
  Pet pet = owner.getPet(petId);  
  model.addAttribute("pet", pet);  
  return "displayPet"; 
}

, который считывает идентификатор владельца и petId из uri запроса.

...