일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- git
- 개념정리중
- javaserverpage
- 공부하기
- Controller
- 너무재미꼬
- upstream
- sagan
- fork
- POST
- 따라하기
- data
- 스프링
- entity
- Github
- Request
- 공부
- 개선하기
- 프레임워크
- 홈페이지
- MVC
- 계획은없음
- synchronizing
- Spring
- renderer
- 문제해결
- 삽질잼
- response
- 개념잡기
- Today
- Total
메모장
Spring Controller - Post Request & URL Response 본문
지금 예제를 만들고 있는 것이,
회원가입 & 로그인 페이지를 만들어보고 있다.
예제 코드를 잘 정리해 놓은 사이트가 많아서 어렵지는 않았지만,
문제는 그냥 따라하는 것이 내 성격이랑 좀 안맞는다고 해야하나,
물론, 너무너무 마음에 꼭 드는 예제는 곧잘 따라하기도 하지만,
뭔가... 내가 추구하는 방향이랑 조금이라도 어긋나면 변형을 시도하고자 한다.
그래서 발생했다. 문제가!
우선 백엔드 (컨트롤러 - 서비스로직 - 모델)의 경우는 금방 해결되었다.
MVC 공부를 하면서 각 역할이나 로직에 대해서 어느정도 이해해서인지,
여러 예제 코드를 참조하면서 적당히 내 프로젝트에 맞게 변형해보았다.
문제는 컨트롤러에서 Request와 Response를 처리하는 것에 아직 공부가 부족한 것 같다.
@ResponseBody @RequestBody를 언제 붙여야하며,
이때 각각 return 값은 어떻게 처리되는지,
return type은 어떤 형태일때 어떻게 넘겨주는지,
찾아보면서 하긴했는데, 스스로도 정리가 필요한 것 같다.
또, 프론트도 같이 해야하다보니, Ajax에 대한, 아니 javascript도 옛날 기억을 더듬으면서 해보는데
역시나, 너무 서툰 느낌이 든다. 근데 그래도 시간이 오래걸릴뿐, 어렵게 느껴지지는 않아 다행이다.
한참 해멨던 부분이
"회원가입 요청"은 @PostMapping 인데, 이때 컨트롤러에서 그 다음 주소값을 넘겨주는 것을 구현해보고 싶었다.
@GetMapping은 단순히 Return Type을 String으로 한 뒤, URL만 넘겨주면 해결되는데,
@PostMapping은 자꾸만 뭔가 에러가 난다.
400 에러도 나고(서버 내부), 어떻게 잘 가면 html 문서 내용 자체가 날라간다. (경로가 아니라)
일단 해결하긴 했는데,,, 정리가 필요한 것 같다.
왜 이런 문제가 발생했는지, 어떻게 해결했는지 다시 생각해봐야겠다.
@Controller
@RequestMapping("/user")
@AllArgsConstructor
public class MemberController {
UsersService usersService;
...
/* User Register */
@PostMapping("/register")
@ResponseBody
public String register(@RequestBody UsersSaveRequestDto dto){
usersService.save(dto);
return "/user/login";
}
}
$.ajax({
type: 'POST', /* Request Method Type */
url: '/user/register', /* Request URL */
dataType: 'text', /* Response Data Type */
contentType:'application/json; charset=utf-8',
data: JSON.stringify(data) /* Request Parameter */
}).done(function (path) { /* path : Response Data */
location.href = path;
}).fail(function(error) { /* error : Request&Response Error info */
for(var e in error) { /* Error Print */
console.log("["e+"]:"+error[e]);
}
});
- 와 이거 너무 미리보기 내용이랑 코드블럭 편집창 내용이랑 작업창에서 보이는 내용이랑 차이가 크다. 딮빡 나중에 수정해야겠다
#1
@POST Request를 처리하기 위해서는
@RestController 혹은 @Controller + @ResponseBody 를 활용해야하는 것 같다.
'공부 > Spring-Study' 카테고리의 다른 글
Spring data JPA (0) | 2019.07.29 |
---|---|
JSP 개념 잡기[1/N] (0) | 2019.07.24 |
Servlet 개념 잡기[1/N] (0) | 2019.07.23 |
MVC 개념 잡기[1/N] (0) | 2019.07.20 |
스프링 개념 잡기[1/N] (0) | 2019.07.17 |