Обработка предварительной косой черты в @RequestMapping
Представьте, что у меня есть контроллер Spring MVC примерно так:
@Controller
@RequestMapping("/base-url")
public class MyController{
//..snip
@RequestMapping(method=RequestMethod.GET, value="/edit/{id}")
public String edit(Model model, HttpServletRequest request, Authentication authentication){
//..snip
}
}
Мой вопрос касается внутреннего параметра value
к аннотации @RequestMapping
на уровне функции. Требуется ли предварительная косая черта на /edit/{id}
, или edit/{id}
делает работу так же хорошо? Я бы предположил, что предварительная косая черта установит запрос абсолютным, независимо от сопоставления уровня класса, но, похоже, он игнорируется.
Спасибо,
[5] ИБР.2 ответа:
Согласно документации spring, наличие аннотации класса level @RequestMapping подразумевает, что все методы level @RequestMappings будут относиться к классу'.
Однако было бы неплохо иметь возможность переопределять относительные отображения в некоторых редких случаях.
Лично я предпочитаю добавлять предварительную косую черту в значение @RequestMapping. На уровне кода Вы можете видеть: если значение не начинается с/, То Spring (DefaultAnnotationHandlerMapping) добавит его. Подробный ответ вы можете посетить: Используйте или не используйте косую черту в значении для @RequestMapping. Нужны официальные документы или указать источник весны?