보상기능을 쓰기 위해 유저가 게시판에 게시물을 쓰면, 지금까지 작성한 게시물 개수를 listBoard 에 뿌려줘야했다.
근데 값을 전달할 때는 forward 를 사용해야만 하는줄 알아서 어떻게 해야하나 고민하고 있었는데...!
spring 에서는 RedirectAttributes 클래스를 이용해 redirect 로도 값을 전달할 수 있다 !!!!!! (최고)
* 사용방법 *
1. RedirectAttributes 선언하고
2. addAttribute() 로 담은 다음에
3. 받는 Controller 에서 @RequestParam 으로 잡고
4. View 에 전달하기 위해 model 에 담으면 끝!
* 실제 사용방법 *
1. Controller - addBoard
1 2 3 4 5 6 7 8 9 10 11 | @RequestMapping(value="/board/addBoard", method=RequestMethod.POST) public String addBoard(@ModelAttribute("board") Board board, Model model, RedirectAttributes redirectAttributes) throws Exception{ System.out.println("/board/addBoard : POST"); boardService.addBoard(board); redirectAttributes.addAttribute("boardCnt", boardService.getMyCount("board", board.getUser().getUserId())); return "redirect:/board/listBoard"; } | cs |
2. Controller - listBoard
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @RequestMapping(value="listBoard") public String getBoardList( @ModelAttribute("search") Search search, Model model, HttpSession session, @RequestParam(value="boardCnt", defaultValue="0") int boardCnt) throws Exception{ System.out.println("/board/getBoardList : GET / POST"); List<Board> list = boardService.getBoardList(search); for( int i=0; i<list.size(); i++) { list.get(i).setUser( userService.getUser( (list.get(i).getUser().getUserId()) ) ); } model.addAttribute("list", list); model.addAttribute("search", search); //보상기능에 필요 model.addAttribute("boardCnt", boardCnt); return "forward:/board/listBoard.jsp"; } | cs |
4.
반응형
'Backend > Spring Framework' 카테고리의 다른 글
Spring Framework 에서 AOP 로 Logging 서비스 만들기 (0) | 2019.10.23 |
---|---|
@Value vs @ConfigurationProperties 비교 (0) | 2019.07.01 |
[Java/Spring] 파일 다중업로드 기능 구현 (0) | 2018.05.16 |
컨트롤러에서 쿠키저장이 잘 안될 때 해결하는 방법 (0) | 2018.05.09 |
@RequestParam 과 @ModelAttribute (0) | 2018.05.04 |
댓글