Ответ
Методы контроллера в Spring MVC могут возвращать различные типы объектов, которые фреймворк преобразует в HTTP-ответ. Основные варианты:
String— имя логического представления (view name) для разрешения через ViewResolver.ModelAndView— объект, содержащий и модель данных, и имя представления.ResponseEntity<T>— полный HTTP-ответ, включая статус, заголовки и тело. Используется для REST API.@ResponseBody+ тип объекта — объект будет сериализован (например, в JSON/XML) и записан в тело ответа. Часто используется с аннотацией@RestController.void— если метод обрабатывает ответ напрямую черезHttpServletResponse.
Примеры:
// Возврат имени представления
@GetMapping("/home")
public String home(Model model) {
model.addAttribute("message", "Hello");
return "homePage"; // Resolves to /WEB-INF/views/homePage.jsp
}
// Возврат данных для REST API (JSON)
@RestController
public class ApiController {
@GetMapping("/user/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.findById(id);
return user != null
? ResponseEntity.ok(user)
: ResponseEntity.notFound().build();
}
}