다중맵핑과 템플릿 분기
273
작성한 질문수 5
상품 상세(조회)와 상품 수정(조회)는 로직이 같기 때문에
이전에 배웠던 다중맵핑을 사용하면 될 것 같은데요
@GetMapping("/{itemId}/edit")
public String editForm(@PathVariable Long itemId, Model model) {
Item item = itemRepository.findById(itemId);
model.addAttribute("item", item);
return "basic/editForm";
}
@GetMapping("/{itemId}")
public String item(@PathVariable Long itemId, Model model) {
Item item = itemRepository.findById(itemId);
model.addAttribute("item", item);
return "basic/item";
}다중맵핑을 한 후 템플릿은 조건에 따라 다르게 지정하고 싶은데
조건문 말고 다른 좋은 방법은 없나요?
맵에 넣어서 하고 싶은데
@PathVariable로 URL이 변하니까 안될 것 같고요
실무에선 이런 경우에 어떻게 처리하는지 궁금합니다.
@GetMapping({"/{itemId}", "/{itemId}/edit"})
public String item(@PathVariable long itemId, Model model, HttpServletRequest request) {
Item findItem = itemRepository.findById(itemId);
model.addAttribute("item", findItem);
String viewName = "basic/item";
if(request.getRequestURI().endsWith("edit"))
viewName = "basic/editForm";
return viewName;
}
답변 1
2
안녕하세요. 어니님, 공식 서포터즈 David입니다.
개인적으로는 조회와 수정을 명확히 분리하는 것을 더 선호합니다.
만약 코드 중복이 과하다면 컨트롤러 내 로직을 별도의 메서드로 뽑아낼 것 같습니다.
감사합니다.
0
댓글 감사합니다. 예시의 수정이라는 말이 혼동을 드린 것 같은데 둘은 같은 조회입니다.
물론 상품 상세조회와 수정을 위한 조회를 목적으로 구분지어 나눌 수 있겠으나
위는 이해를 돕기위한 예시이고...
질문의 요지는 @PathVariable을 사용한 다중맵핑에
URL별 템플릿 이름의 리턴 방법이 조건문으로 처리하는 것 외에 스프링만의 편의기능이 있는지요..
@RequestMapping( {"/{itemId}", "/{itemId}/XXX", "/{itemId}/YYY"} )
/{itemId} -> "basic/items"
/{itemId}/XXX ->"basic/item"
/{itemId}/YYY -> "baisic/items"
mvc 패턴 - 적용 강의에서 회원가입할 때 redirect가 아닌 forward인 이유가 궁금합니다.
0
31
1
servlet과 container에 대한 질문입니다
0
54
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
86
1
jsp 의존성 수정 요청
0
128
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
161
1
save() 메서드 문의
0
78
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
114
1
request-body-json
0
97
2
MVC 패턴의 적용 단위
0
103
1
RequestMapping을 이용한 핸들러, 어댑터
0
124
2
save 후 결과화면
0
101
2
jsp를 이용한 view
0
102
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
195
1
수업 코드 제공 관련 문의
0
107
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
109
3
파일 오픈 시
0
76
1
스프링 배치 관련
0
81
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
115
1
postman으로 /request-body-json-v1 호출시 500 error
0
108
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
90
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
119
1
console log 출력 관련 질문입니다.
0
80
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
149
1
html 변경하는 부분 적용 문제
0
109
1





