728x90
반응형
📃 Controller에서 redirect 사용
@GetMapping("/host/roomOne")
public String hostRoomOne(Model model,
@RequestParam("roomId") int roomId, @RequestParam("detailAddressId") int detailAddressId) {
Map<String, Object> result = roomService.getHostRoomOne(roomId, detailAddressId);
model.addAttribute("room",result.get("room"));
model.addAttribute("address",result.get("address"));
model.addAttribute("hashtag",result.get("hashtag"));
return "/host/room/roomOne";
}
@PostMapping("/host/modifyRoom")
public String postModifyRoom(RedirectAttributes redirect, Room room, Address address, String hashtag) {
address = roomService.modifyRoom(room, address, hashtag);
redirect.addAttribute("roomId",room.getRoomId());
redirect.addAttribute("detailAddressId",address.getDetailAddressId());
return "redirect:/host/roomOne";
}
[ 숙소의 정보 수정이 완료되면, 숙소 상세보기 페이지를 띄우도록 하는 redirect 요청입니다]
redirect를 사용하는 이유 : 저는 Controller에서 메서드의 작업이 끝난 후 return값으로 /webapp/WEB-INF/jsp 위치의 jsp파일명을 반환합니다. 숙소 수정이 완료된 후, 숙소 상세보기 페이지인 roomOne.jsp가 열리도록 해야하는데, 해당 숙소의 상세정보도 받아와야 합니다. 그렇기 때문에 간단하게 jsp만 여는것이 아니라 숙소 상세정보를 가져온 후 해당 jsp를 포워딩하는 /host/roomOne으로 redirect를 진행합니다.
- postModifyRoom 메서드의 작업이 끝나면 hostRoomOne 메서드로 redirect를 진행합니다.
- redirect를 진행하는 메서드에서는 param값으로 'RedirectAttributes redirect'를 받고, redirect.addAttribute("이름",값);으로 redirect를 하는 위치로 값을 전달한다.
- redirect를 요청받은 메서드의 param값은 @RequestParam("이름") 자료형 변수명의 형식으로 값을 받아 사용합니다.
728x90
반응형
'Web > spring' 카테고리의 다른 글
[spring] Lombok 설치 후 STS 실행 안됨 (0) | 2021.11.05 |
---|---|
[spring] Spring Tool Suite에 Lombok 설치 (1) | 2021.11.05 |
[spring] 컨트롤러(controller)의 사용 / mariaDB 연동 (0) | 2021.11.03 |
[spring] spring / web / mybatis 설치 및 환경 설정 (2) | 2021.11.02 |