Я пытаюсь добавить путь по умолчанию в свой контроллер Spring.
Например: я хотел бы, чтобы http://localhost:8080 отображал то же представление, что и http://localhost:8080/index.
Я пробовал это:
@Controller
@RequestMapping("/")
public class RecipeController {
@Autowired
private RecipeService service;
@RequestMapping // http://localhost:8080
public String root(Model model) {
List<Recipe> recipes = service.fetchAll();
model.addAttribute("recipes", recipes);
return "index";
}
@GetMapping(value = {"/index"}) // http://localhost:8080/index
public String index(Model model) {
List<Recipe> recipes = service.fetchAll();
model.addAttribute("recipes", recipes);
return "index";
}
}
Он отлично работает на http://localhost:8080/index.
Однако он никогда не входит в корневую функцию на http://localhost:8080.
Итак, я попробовал это:
@Controller
public class RecipeController {
@Autowired
private RecipeService service;
@RequestMapping("/") // http://localhost:8080
public String root(Model model) {
List<Recipe> recipes = service.fetchAll();
model.addAttribute("recipes", recipes);
return "index";
}
@GetMapping(value = {"/index"}) // http://localhost:8080/index
public String index(Model model) {
List<Recipe> recipes = service.fetchAll();
model.addAttribute("recipes", recipes);
return "index";
}
}
Это дает тот же результат.




Вы можете унифицировать это следующим образом:
@RequestMapping(value = {"/", "/index"})
В Spring аннотация @RequestMapping может принимать несколько значений для сопоставления разных URL-адресов с одним и тем же методом контроллера.
Надеюсь, что это работает!