Un débutant travaillant avec Thymeleaf voulait connaître la différence de comportement entre @Controller et @RestController, alors je l'ai étudié.
Démarrez sprintboot et accédez à l'URL suivante. http://localhost:8080/〇〇
@ Controller
Avec un code comme ci-dessous http://localhost:8080/list Lorsque vous accédez main/resources/templates/list_display.html Le html de s'affiche à l'écran. (La chaîne de caractères "list_display" n'est pas affichée telle quelle)
@Controller
public class AppController {
@GetMapping("list")
public String from_list(){
return "list_display";
}
}
@ RestController
D'autre part, créez le fichier contrôleur suivant et utilisez @RestController pour le créer. http://localhost:8080/person Lorsque vous accédez
@RestController
public class SampleController {
@GetMapping("person")
public Person person() {
return new Person(123, "hogehoge", 40);
}
}
La chaîne de caractères suivante est renvoyée telle quelle. {"id":123,"name":"hogehoge","age":40}
(Créez une classe Person distincte comme celle ci-dessous)
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Person {
Integer id;
String name;
Integer age;
}
--Si vous souhaitez afficher le fichier html dans resource / sur l'écran, @RestController --Si vous souhaitez simplement afficher une chaîne de caractères, @Controller
Utilisons.
«C'est facile, mais je l'ai préparé pour mon propre mémorandum.
Recommended Posts