Можно ли использовать несколько меток @RequestMapping spring в методе? Как:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return("welcome");
}
Можно ли использовать несколько меток @RequestMapping spring в методе? Как:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return("welcome");
}
@RequestMapping
имеет параметр значения String[]
, поэтому вы должны указать несколько значений, например:
@RequestMapping(value={"", "/", "welcome"})
Из моего теста (spring 3.0.5), @RequestMapping(value={"", "/"})
- только "/"
работает, ""
нет. Однако я выяснил, что это работает: @RequestMapping(value={"/", " * "})
, " * "
соответствует чему угодно, поэтому он будет обработчиком по умолчанию, если нет других.
Не нужно. Аннотирование RequestMapping поддерживает подстановочные знаки и ant -стильные пути. Также похоже, что вам просто нужен вид по умолчанию, поэтому вы можете поместить
<mvc:view-controller path="/" view-name="welcome"/>
в вашем файле конфигурации. Это пересылает все запросы Root на приветственный вид.
Прямо сейчас с использованием 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){
...
}
или разобрать его из объекта запроса.