Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sshtunneling
- kaniko
- Certbot
- jnlp
- datagrip
- Tunneling
- helm-chart
- elasticahe
- redis oss
- 인프런강의
- ssafy #싸피 #ssafy 12기 #싸피 12기 #ssafy 합격 #싸피 합격 #합격 후기
- Docker
- ssh
- ElastiCache
- RDS
- Kubernetes
- helm
- ChatGPT
- ingress-nginx
- k8s
- EC2
- AWS
- vue3
- port forawrding
- 워커노드
- argocd
- multibranch
- 쿠버네티스
- cloud controller manager
- 인프런
Archives
- Today
- Total
처누
[Spring] redirect 본문
게시글 수정하기 기능 구현 중 다음과 같은 오류가 발생했다.
글 수정 후에 URL이 바뀌지 않았을 뿐더러 게시글 리스트에 수정한 게시글도 보이지 않았다.
@PostMapping("/board/edit/{id}")
public String edit(@PathVariable Long id, BoardForm form) {
Board board = boardService.findByOne(id).get();
board.setTitle(form.getTitle());
board.setContent(form.getContent());
boardService.edit(board);
return "/board/showBoardList";
}
위 코드에서 '/board/showBoardList'를 반환하는데 이 부분이 문제였다.
GET과 POST는 명확하게 역할이 정해져있다. GET은 리소스 요청, POST는 리소스를 생성하는 역할이 있다. 하지만 위 코드에선 POST가 리소스 생성과 요청을 동시에 하고 있다. 따라서 URL이 바뀌자 않고, 게시글 리스트도 제대로 조회되지 않은 것이다.(URL이 바뀌지 않는 것까진 이해했는데 왜 게시글 리스트도 안보이는지는 모르겠음... 번호/제목은 왜 뜨는거고...)
따라서 클라이언트한테 리다이렉트할 주소를 알려주고(redirect:/board/list) 이를 GET요청(/board/list)을 다시 보내게 해야한다.
@PostMapping("/board/edit/{id}")
public String edit(@PathVariable Long id, BoardForm form) {
Board board = boardService.findByOne(id).get();
board.setTitle(form.getTitle());
board.setContent(form.getContent());
boardService.edit(board);
return "redirect:/board/list";
}
'java' 카테고리의 다른 글
[IntelliJ] Port 8080 was already in use (0) | 2024.03.25 |
---|---|
[Spring] IntellJ & mysql 연동 java.lang.classnotfoundexception com.mysql.cj.jdbc.driver오류 (0) | 2024.01.29 |
[Spring] @PathVariable & Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long' (0) | 2024.01.20 |
[김영한의 실전 자바 - 기본편] 다형성 (1) | 2024.01.07 |
[김영한의 실전 자바 - 기본편] 상속 (2) | 2024.01.07 |