상세페이지 만들어두고
제목누르면 상세페이지로 이동
/detail/1 < 1번 상품의 상세페이지
/detail/2 < 2번 상품의 상세페이지
그럼 API 여러개 만들어야함? ㄴㄴ
URL 파라미터 문법으로 가능
@GetMapping("/detail/{작명}")
{} < 이게 URL 파라미터
참고로 /detail/{작명}/{작명2}/{작명3} 이런식으로 URL 파라미터 여러개 사용 가능
@GetMapping("/detail/{작명}")
String detail(){
return "detail.html";
}
이렇게하면
/detail/1 < 1번 상품의 상세페이지
/detail/2 < 2번 상품의 상세페이지
보여주게 됨
그럼 이제 view쪽으로 각 id에 맞는 데이터를 뿌려주려면?
itemRepository.findById(서버에서 받아온 값);
Optional<Item> reslut = itemRepository.findById(id);
Optional<Item> 쓰는 이유
원하는 행의 item있을수도 없을수도 있기때문에 구분해주기위해
그래서 if문으로 reslut.isPresent()) 이런식으로 물어보고 있으면 값꺼내주고 이렇게 하는게 정석임
@GetMapping("/detail/{id}")
String detail(@PathVariable("id") Long id){
Optional<Item> reslut = itemRepository.findById(id);
if (reslut.isPresent()) {
System.out.println(reslut.get());
return "detail.html";
}else {
return "redirect:/list";
}
Optional<Item> 을 쓸때 특징
result에 있는 값을 꺼내려면 무조건 .get()을 붙여야함
'SPRING' 카테고리의 다른 글
[Spring Boot] 예외발생시/ 타임리프로 에러페이지만들기(짱쉬움;) (0) | 2025.03.20 |
---|---|
[Spring Boot] 상품상세페이지2 타임리프로 링크만들기 (0) | 2025.03.20 |
[Spring Boot] 폼에서 데이터 받아서 DB에 저장(간단하게)/@ModelAttribute/타임리프 html 반복문 (0) | 2025.03.18 |
[Spring Boot] 상품추가기능 만들기 MAP (0) | 2025.03.17 |
[Spring Boot] 개발자들이 private를 쓰는이유 (0) | 2025.03.15 |