728x90
import hello.springmvc.basic.HelloData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@Slf4j
@Controller
public class RequestParamController {
@ResponseBody
@RequestMapping("/model-attribute-v1")
// 요청 파라미터의 이름으로 HelloData 객체의 프로퍼티를 찾는다
// 파라미터 이름이 "username" 이면 setUsername() 메서드를 찾아서 호출하면서 값을 입력한다.
public String modelAttributeV1(@ModelAttribute HelloData helloData) {
log.info("helloData={}", helloData);
return "ok";
}
@ResponseBody
@RequestMapping("/model-attribute-v2")
// @ModelAttribute 삭제 가능
// 단순타입(String,int 등) 은 생략 가능
public String modelAttributeV2(HelloData helloData) {
log.info("helloData={}", helloData);
return "ok";
}
}
@PostMapping("/add")
public String addItemV2(@ModelAttribute("item") Item item,Model model){
itemRepository.save(item);
//@ModelAttribute 내부의 "item"이 자동으로 model.addAttribute 해준다 같은 이름으로 key,value
//model.addAttribute("item", item);
return "basic/item";
}
@PostMapping("/add")
public String addItemV4(Item item,Model model){
itemRepository.save(item);
// model에 자동으로 담김
// 이렇게까지 가능하지만 추천하지는 않음
//model.addAttribute("item", item);
return "basic/item";
}728x90
'백엔드 > Spring(Boot)' 카테고리의 다른 글
| HTTP 요청 메시지 (JSON) (0) | 2021.09.10 |
|---|---|
| HTTP 요청 메시지 (단순 텍스트) (0) | 2021.09.09 |
| 스프링 HTTP 요청 파라미터 - @RequestParam (0) | 2021.09.09 |
| 스프링 HTTP 헤더 조회 (0) | 2021.09.09 |
| 스프링 API 개발 기초 (0) | 2021.09.09 |