Skip to content

Contrôleurs

TODO: RestController, ResponseBody

Bases

Une classe contrôleur est déclarée à l'aide d'un @Controller.

1
2
@Controller
public class MyController {}

Pour définir un handler sur route, il faut créer une fonction, et utiliser un attribut RequestMapping.

@RequestMapping prend en premier paramètre la route sur laquelle se bind (@RequestMapping("/")), et la méthode est définissable à l'aide du paramètre nommé method, par exemple method = RequestMethod.GET.

1
2
3
4
5
6
7
@Controller
public class MyController {
    @RequestMapping("/", method = RequestMethod.GET)
    public void index() {
        // ...
    }
}

Additionnellement, Spring fournit des raccourcis, nommés @<méthode>Mapping, par exemple @GetMapping.

Préfixe de chemin

Dans le cas où toutes les méthodes de notre contrôleur ont un préfixe commun, par exemple /books/*, on peut utiliser @RequestMapping sur la classe.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@Controller
@RequestMapping("/books")
public class BookController {
    @GetMapping("/")
    public String listBooks() {
        // ...
    }

    @GetMapping("/by-author")
    public String listBooksGroupedByAuthor() {
        // ...
    }
}

Sur cet exemple, les routes crées sont /books et /books/by-author.