Вопрос по сопоставлению URL-адресов Spring - PullRequest
2 голосов
/ 18 февраля 2010

Я использую Java с Spring Framework. Учитывая следующий URL:

www.mydomain.com/contentitem/234

Мне нужно отобразить все запросы, поступающие на /contentitem/{numeric value}, сопоставленные с данным контроллером, с "числовым значением", переданным в качестве параметра в контроллер.

Прямо сейчас в моем контейнере сервлетов xml у меня есть простые сопоставления, подобные следующим:

...
<entry key="/index.html">
   <ref bean="homeController" />
</entry>
...

Мне просто интересно, что мне нужно добавить в отображение, чтобы добиться того, что я описал?

Редактировать : Я временно принял ответ, потому что не могу понять, как выполнить сопоставление в моем файле web.xml (я использую аннотации, как описано в ответе axtavt ниже). Как добавить правильный <url-pattern>..</url-pattern> в мой <servlet-mapping>, чтобы запрос на "/ contentitem / {numeric_value}" был правильно подобран? Спасибо!

Ответы [ 3 ]

4 голосов
/ 18 февраля 2010

Это можно сделать с помощью конфигурации контроллера на основе аннотаций (см. 15.3 Реализация контроллеров ):

@Controller
public class ContentItemController {

    @RequestMapping("/contentitem/{id}")
    public ModelAndView contentItem(@PathVariable("id") int id) {
        ...
    }
}
2 голосов
/ 15 июня 2013

попробуйте использовать @RequestMapping и @ PathVariable

@RequestMapping(value="/contentitem/{value}", method=RequestMethod.GET)
public String demo(@PathVariable(value="nvalue") String name, ModelMap map) {

int intValue = Integer.parseInt(nvalue);

// Do manipulation

return "something"; // Forward to something.jsp
}

Посмотрите это Учебник по Spring MVC Framework

0 голосов
/ 31 мая 2010

Вы должны импортировать org.springframework.stereotype.Controller.

...