컨트롤러에서 vo get 사용시 null 익셉션 문제입니다.

7,125 views
Skip to first unread message

안장우

unread,
Apr 10, 2014, 11:00:11 PM4/10/14
to ks...@googlegroups.com
예를 들어 ibatis를 이용하여 member 테이블의 id,name,phone을 가져옵니다.
select id,name,phone from member

그리고 결과를  memberVO에 담습니다. (resultClass=memberVO)

컨트롤러단에서 이것저것 선언한후 

String name = memberVO.getName();

이런식으로 getter를 사용해서 불러올경우, db상에서 null이면 당연히 null 익세션이 뜹니다.

그래서 컨트롤러에서 

if (memberVO.getName().equals("") || memberVO.getName() == null)
    name = "1";

이렇게 null처리를 해주려고 해도 null 익셉션이 뜹니다. getName()자체가 null이면 아예 익셉션을 띄우는듯하는데

해결하려고 memberVO에  private String name; 에 초기값으로 private String name="1"; 도 안되네요..당연하겠죠 db에서 null이 넘어오면..

쿼리부부에서 오라클의 NVL처럼 null을 강제로 다른값으로 바꾸는 방법밖에 없는걸까요?

아직 Spring에 대한 이해가 많이 부족합니다. 조언부탁드립니다!

이수홍

unread,
Apr 10, 2014, 11:05:04 PM4/10/14
to ks...@googlegroups.com
사실 스프링과는 관계 없고 

ibatis 문제  보다는 자바 문제 같네요 

if (memberVO.getName().equals("") || memberVO.getName() == null)
    name = "1”;

제가 보기엔 이 부분의 로직이 문제 입니다.

memberVO.getName()이 null인데 equals 메소드가 될리가 없겠죠 

만약에 저렇게 로직을 하시려면 

memberVO.getName() == null 이 비교를 먼저 하시고 

그다음 memberVO.getName().equals(“") 이 비교를 하시는 방법이 있습니다.

그리고 spring을 사용하시면 StringUtils.hasText() 함수로 비교하는 방법도 있습니다.

참고 하세요 

2014. 4. 11., 오후 12:00, 안장우 <hana...@gmail.com> 작성:

--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
http://groups.google.com/group/ksug에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/3927480c-9b21-4cc1-b7af-34eecc4b0ed5%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

Jisung, Ahn

unread,
Apr 11, 2014, 12:41:13 AM4/11/14
to ks...@googlegroups.com
1. 관련 유틸 이용

import static org.apache.commons.lang3.StringUtils.*;


if (isEmpty(memberVO.getName()) {
name = “1”;
}



2. 상수를 왼쪽에 두는 방법


if (“John”.equals(memberVO.getName()) {  
  doJohnWork();
}


2014. 4. 11., 오후 12:00, 안장우 <hana...@gmail.com> 작성:

안장우

unread,
Apr 11, 2014, 1:24:30 AM4/11/14
to ks...@googlegroups.com
두분의 조언대로 StringUtils를 이용해서 해결됐습니다!

감사합니다~

정병열

unread,
Apr 11, 2014, 7:08:55 AM4/11/14
to ks...@googlegroups.com
널 체크 쉽게 할수 있는 라이브러리를 소개 해드릴게요.


구아바라고.. 한번 찾아보시고 익숙해지면 아주 편하답니다.

2014년 4월 11일 금요일 오후 12시 0분 11초 UTC+9, 안장우 님의 말:
Reply all
Reply to author
Forward
0 new messages