Spring
Spring_Ajax_아이디 중복 확인
climb-up
2022. 6. 14. 00:53
1) 아이디 중복확인 memberJoin.jsp
<head>
<style>
span.guide{display: none; font-size: 12px; top: 12px; right: 10px;}
span.ok{color: green;}
span.error{color: red;}
</style>
</head>
<body>
<h1 align="center">회원가입</h1>
<div class="centerText">
<form action="minsert.me" method="post" id="joinForm">
<table>
<tr>
<th>* 아이디</th>
<td>
<input type="text" name="id" id="userId">
<span class="guide ok">이 아이디는 사용 가능합니다.</span>
<span class="guide error">이 아이디는 사용할 수 없습니다.</span>
<input type="hidden" id="idDuplicateCheck" value="0"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<button onclick="return validate();">가입하기</button>
<input type="reset" value="취소하기">
<button type="button" onclick="location.href='home.do'">시작 페이지로 이동</button>
</td>
</tr>
</table>
</form>
</div>
<script>
$('#userId').on('keyup', function(){
var userId = $(this).val().trim();
if(userId.length < 4){
$('.guide').hide();
$('#idDuplicateCheck').val(0);//아이디 중복확인을 했는지 확인여부
return;
}
$.ajax({
url: 'dupId.me',
data: {id:userId},
success: function(data){
console.log(data);
if(data == '1'){
$('.guide.error').show();
$('.guide.ok').hide();
$('#idDuplicateCheck').val(0);
} else {
$('.guide.error').hide();
$('.guide.ok').show();
$('#idDuplicateCheck').val(1);
}
},
error: function(data){
console.log(data);
}
})
});
function validate(){
if($('#idDuplicateCheck').val() == 0){
alert('사용 가능한 아이디를 입력해주세요.');
$('#userId').focus();
return false;
} else {
$('#joinForm').submit();
}
}
</script>
</body>
아이디 중복확인여부와 ajax를 사용한 비동기 통신으로 아이디 중복확인을 진행할 폼을 만든다.
2) MemberController
@RequestMapping("dupId.me")
public void duplicateId(@RequestParam("id") String id, HttpServletResponse response) {
int result = mService.checkIdDup(id);
try{
response.getWriter().print(result);
} catch (IOException e){
e.printStackTrace();
}
}
ajax를 사용. getWriter().print()를 사용하려면 HttpServletResponse response를 써줘야한다.
3) MemberService(interface)
public interface MemberService {
int checkIdDup(String id);
}
4) MemberServiceImpl
@Service("mService")
public class MemberServiceImpl implements MemberService{
@Autowired
private MemberDAO mDAO;
@Autowired
private SqlSessionTemplate sqlSession;
@Override
public int checkIdDup(String id) {
return mDAO.checkIdDup(sqlSession, id);
}
}
5) MemberDAO
@Repository("mDAO)
public class MemberDAO {
public int checkIdDup(SqlSessionTemplate sqlSession, String id) {
return sqlSession.selectOne("memberMapper.checkIdDup", id);
}
}
6)member-mapper.xml
<mapper namespace="memberMapper">
<select id="checkIdDup" resultType="_int">
select count(*)
from member
where id = #{id}
</select>
</mapper>