[Spring] 비동기 통신
2024. 7. 6. 23:29ㆍBE/Spring
1. @PathVariable
@GetMapping("/blog/{userid}/{articleno}")
public String viewArticle(@PathVariable("userid") String userId, @PathVariable("articleno") int articleNo, Model model){
...
return "blog/view";
}
url에 일부분을 매개변수로 사용할 수 있다.
Clean URL, Rest API에 유용하다.
2. @ResponseBody
// join.jsp
let isUseId = false;
document.querySelector("#userid").addEventListener("keyup", function () {
let userid = this.value;
console.log(userid);
let resultDiv = document.querySelector("#idcheck-result");
if(userid.length < 6 || userid.length > 16) {
resultDiv.setAttribute("class", "mb-3 text-dark");
resultDiv.textContent = "아이디는 6자 이상 16자 이하 입니다.";
isUseId = false;
} else {
fetch("${root}/user/" + userid)
.then(response => response.text())
.then(data => {
console.log(data);
if(data == 0) {
resultDiv.setAttribute("class", "mb-3 text-primary");
resultDiv.textContent = userid + "는 사용할 수 있습니다.";
isUseId = true;
} else {
resultDiv.setAttribute("class", "mb-3 text-danger");
resultDiv.textContent = userid + "는 사용할 수 없습니다.";
isUseId = false;
}
});
}
});
fetch("${root}/user/" + userid)
: 회원가입 시 중복되는 아이디 검사하는 비동기 통신 발생.
(${root}
는 JSP파일에서 사용되는 EL 문법이다.)
@Controller
@RequestMapping("/user")
public class MemberController {
@GetMapping("/{userid}")
@ResponseBody
public String idCheck(@PathVariable("userid") String userId) throws Exception {
int cnt = memberService.idCheck(userId);
return cnt + "";
}
...
@GetMapping("/{userid}")
와@PathVariable("userid")
를 사용. QueryString을 사용하지 않았다.@ResponseBody
: 반환값을 Http Body에 그대로 전달한다. View로 이동하지 않는다.
'BE > Spring' 카테고리의 다른 글
[Spring] SpringBoot (0) | 2024.07.06 |
---|---|
[Spring] Rest API (0) | 2024.07.06 |
[Spring] MyBatis-Spring module (0) | 2024.07.06 |
[MyBatis] 동적 SQL (0) | 2024.07.06 |
[MyBatis] MyBatis란? (0) | 2024.07.06 |