100세까지 코딩
[스프링 입문] 웹 개발 기초 본문
정적 컨텐츠
템플릿 엔진
API (가장 보편적)
- @ResponseBody
- HTTP의 BODY에 문자 내용을 직접 반환
- viewResolver 대신에 HttpMessgeConverter가 동작
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
- json으로 처리
코드
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!");
return "hello";
}
// 템플릿 엔진
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name", required = false) String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam(value = "name") String name) {
return "hello " + name;
}
// API방식(json)
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
참고
@RequestParam의 required = true 가 디폴트 값
따라서 URL을 통해 Param값을 안 던지면 오류.
오류가 안나게 하려면 required = false로 지정해줄 필요가 있음.
'백엔드 > 스프링 입문' 카테고리의 다른 글
[스프링 입문] 회원 서비스 개발 (0) | 2023.12.02 |
---|---|
[스트링 입문] 회원 리포지토리 테스트 케이스 작성 (0) | 2023.12.01 |
[스프링 입문] 회원 도메인과 리포지토리 만들기 (0) | 2023.12.01 |
[스프링 입문] 윈도우 명령 프롬프트에서 Gradle 빌드 (0) | 2023.11.27 |
[우테코] 종합 피드백 (0) | 2023.11.26 |