Вопрос

Можно ли использовать в методе несколько пружинных аннотаций @RequestMapping?Нравиться:

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}
Это было полезно?

Решение

@RequestMapping имеет String[] value, поэтому вы сможете указать несколько значений следующим образом:

@RequestMapping(value={"", "/", "welcome"})

Другие советы

Из моего теста (весна 3.0.5) @RequestMapping(value={"", "/"}) - только "/" работает, "" не.Однако я узнал, что это работает: @RequestMapping(value={"/", " * "}), " * " соответствует чему угодно, поэтому это будет обработчик по умолчанию, если других нет.

В этом нет необходимости.Аннотация RequestMapping поддерживает подстановочные знаки и пути в стиле ant.Также похоже, что вам просто нужен вид по умолчанию, поэтому вы можете поставить

<mvc:view-controller path="/" view-name="welcome"/>

в вашем файле конфигурации.Это перенаправит все запросы к корню в представление приветствия.

Прямо сейчас с использованием Spring-Boot - { } не будет работать.

@RequestMapping

по-прежнему имеет String[] в качестве параметра значения, поэтому объявление выглядит следующим образом:

 @RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)

Самый короткий путь: @RequestMapping({"", "/", "welcome"})

Хотя вы также можете сделать:

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})

Лучше использовать аннотацию PathVariable, если вы все еще хотите получить вызванный uri.

@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}

или проанализировать его из объекта запроса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top