весеннее форматирование URL MVC - PullRequest
0 голосов
/ 24 января 2012

Я использую пружинный MVC. У меня есть 3 страницы на моем сайте (фактически контроллер обрабатывает эти запросы):

localhost/post.html
localhost/search.html
localhost/list.html

Я бы хотел, чтобы URL был localhost/XXX/post.html, где XXX - это параметр, который будет передан в качестве параметра в метод контроллера. Например, если пользователь спрашивает localhost/bla/post.html, то метод контроллера /post получит bla в качестве параметра.

Возможно ли это весной мвк?

Ответы [ 3 ]

1 голос
/ 24 января 2012

Да, и довольно легко сделать. Когда вы определяете отображение для URL-адреса обработчика, вы можете поместить переменную в путь следующим образом:

@RequestMapping("/{blah}/post.html")
public ModelAndView handleRequest(@PathVariable("blah") String blah) {
  //
}

Spring установит для вас значение String при вызове метода.

(Хотя это и не является строго необходимым, также нормально иметь подкаталог для сервлета-диспетчера в ваших путях. Сопоставление диспетчера с корнем может быть затруднительным. Например, портит доступ к статическим ресурсам. Например, localhost / myapp /blah/post.html)

0 голосов
/ 24 января 2012

Это легко сделать, используя аннотации:

@Controller
public class MyController
{   

    @RequestMapping(value = "/{id}/post", method = RequestMethod.POST)
    public String post(@PathVariable("id") String id)
    {
    }

    @RequestMapping(value = "/{id}/search", method = RequestMethod.GET)
    public String search(@PathVariable("id") String id)
    {
    }

    @RequestMapping(value = "/{id}/list", method = RequestMethod.GET)
    public String list(@PathVariable("id") String id)
    {
    }

}
0 голосов
/ 24 января 2012

В JSF это можно сделать с помощью библиотеки PrettyFaces .Может быть, это поможет вам.

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