DB insert시 unique 컬럼에 걸렸을때 DuplicateKeyException 이걸 던져준다

이걸 받아서 중복검사 해줄수 있다


/* 회원가입  > 회원저장 */

@RequestMapping(value = "/join/memberinsert", method = RequestMethod.POST)

@ResponseBody

public Map<String,Object> Memberinsert(HttpServletRequest request, HttpServletResponse response,@RequestBody MemberVO member) throws Exception {

/* Map<String, Object> map = new HashMap<String, Object>();

map.put("member", member);

*/

Map<String, Object> map = new HashMap<String, Object>();

try{

memberService.InsertMember(member);

} catch(Exception e){

if (e instanceof DuplicateKeyException) {

map.put("msg", "fail");

return map;

}

}

map.put("idx", member.getIdx());

map.put("authority", "ROLE_USER");

memberService.InsertMemberAuthority(map);

return map;

}


instanceof 이걸로 DuplicateKeyException 요거 받아와서 jsp로 던져줘서 처리해줌!


원래 컨트롤러에서 검사하면 안된다는데;; 조빱이라 그냥 여기서함


회원가입 ID중복검사 말고도 unique데이터를 검사해야할때 사용하면 좋을거같다

'IT' 카테고리의 다른 글

CentOS 6.7 iso  (0) 2017.07.11
Spring 회원가입 ID중복 검사 버튼  (1) 2017.03.15
jsp에서 controller로 데이터 ajax로 보내기  (0) 2017.03.08

form을 submit하면 form에있는 모든 데이터를 넘겨준다.

하지만 password_check는 필요하지 않고 VO에 없어서 에러가 발생했다.

이걸 해결하기 위해서 ajax를 통해 필요한 데이터만 담아서 보내려고 했으나 에러발생...

@ResponseBody를 통해서 jsp에서 controller에서 데이터 넘겨줄때 JSON형태로 줘야 하는데 그냥 보내서 그런 문제였다.


JSON형태로 만들어줘서 ajax에 담았다.

var data2 = {userId: userId , name: name, password: password};

var data = JSON.stringify(data2);


<form name="memberinsert" id="memberinsert" method="post" action="<c:url value='/join/memberinsert'/>">

<table width="550" align="center" border="1" bordercolor="ADD8E6" cellpadding="5">

<tr>

<td height="30" align="center" bgcolor="#FFDEAD">이름</td>

<td bgcolor="#E0FFFF"><input type="text" size="10" id="name" name="name" maxlength="10"></td>

</tr>

<tr>

<td height="30" align="center" bgcolor="#FFDEAD">아이디</td>

<td bgcolor="#E0FFFF"><input type="text" size="10" id="userId" name="userId" maxlength="10"></td>

</tr>

<tr>

<td height="30" align="center" bgcolor="#FFDEAD">비밀번호</td>

<td bgcolor="#E0FFFF"><input type="password" id="password" name="password" size=12 maxlength="12"></td>

</tr>

<tr>

<td height="30" align="center" bgcolor="#FFDEAD">비밀번호 확인</td>

<td bgcolor="#E0FFFF"><input type="password" id="password_check" name="password_check" size=12 maxlength="12"></td>

</tr>

<tr>

<td colspan="2" height="30" align="center" bgcolor="#FFDEAD"> 

<!-- <a href="void(0)" onclick="$('#memberinsert').getElementById('memberinsert').submit();return false;" >가입하기</a> -->

<a href="void(0)" onclick="$('#memberinsert').closest('form').submit();return false;" >가입하기</a> 

<input type="reset" value="리셋하기" onclick='init()'>

<input type="button" id="back" value="뒤로가기" onclick="javascript:location.href='/join/agreement';"></td>

</tr>

</table>

</form>



<a href="void(0)" onclick="$('#memberinsert').closest('form').submit();return false;" >가입하기</a>

submit은 할 수 없고 submit처럼 동작하기위해 return false;를 통해

a태그의 기능을 없애고 onclick으로 function을 호출해서 ajax형태로 원하는 데이터만 골라 보냈다.


var userId = document.getElementById('userId').value;

var name = document.getElementById('name').value;

var password = document.getElementById('password').value;


$.ajax({
type : "POST",
url : url,
data :data
/*{
"userId" : userId,
"name" : name,
"password" : password,
}*/,
cache : false,
contentType : "application/json;charset=UTF-8",
beforeSend : function (xhr)
{
xhr.setRequestHeader(header, token); 
},
success :function(data){
alert("회원가입 완료");
window.location.replace("<c:url value='/main'/>");
},
error:function(request,status,error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});

데이터 안보내져서 하루종일 삽질했다!

'IT' 카테고리의 다른 글

CentOS 6.7 iso  (0) 2017.07.11
Spring 회원가입 ID중복 검사 버튼  (1) 2017.03.15
Spring 회원가입 ID중복 검사  (0) 2017.03.14

CSS에서 글꼴을 지정할 때는 font-family 속성을 사용합니다.

font-family는 우리나라말로 번역하면 글꼴의 집합인데, 하나 이상의 글꼴을 모아 놓은 것이라고 보면 됩니다. 

만약 글꼴을 하나만 지정했을 때 사용자의 컴퓨터에 해당 글꼴이 없으면 기본 글꼴로 보이게 되고, 하나 이상의 글꼴을 지정했을 때 사용자의 컴퓨터에 첫 번째로 지정한 글꼴이 없으면 다음 차례에 있는 글꼴이 보이게 됩니다.


예시 : p{font-family:'Nanum Gothic', Arial, Verdana, sans-serif;}


font-family는 family-namegeneric family로 구성되어 있는데요. family-name은 Namun Gothic과 같은 글꼴 이름을 나타내고, generic family는 sans-serif와 같은 모양이 비슷한 글꼴들의 그룹을 나타냅니다. family-name에는 arial, verdana, 나눔고딕, 궁서, 굴림 등이 있고 generic family에는 serif(바탕체), Sans-serif(고딕체), Cursive(필기체) 등이 있습니다.


- 하나 이상의 글꼴을 열거할 때는 쉼표(,)를 사용합니다.

- 글꼴 이름에 띄어쓰기가 포함되어 있을 경우 쌍따옴표("")홑따옴표('')를 사용합니다.

- 시작은 family-name으로, 끝은 항상 generic family로 설정합니다. (사용자가 해당 글꼴이 없을 경우에 비슷한 글꼴로 보이게끔 하기위함)


+ Recent posts