'empty'에 해당되는 글 2

  1. 2009.08.12 java.lang.NumberFormatException: For input string: ""
  2. 2009.06.11 JSTL 비교 연산자

java.lang.NumberFormatException: For input string: ""

숫자를 출력할 때 이런 에러가 종종 발생한다.
근본적으로는 데이터베이스에 이런 데이터가 들어가지 못하게 해야 한다.

JSTL 사용시 이런 값이 있는 경우

숫자포맷을 사용한다면 다음과 같이 사용

아니면 태그 라이브러리를 하나 만들어

- 2010-02-27 추가
레거시에서 데이터를 전달해주는데 EMPTY 문자열이 넘어와야 하는데 길이가 1인 경우도 있다.
<c:when test="${empty item.state}"> //" "인 경우 empty는 false를 반환한다.
<c:when test="${empty fn:trim(item.state)}"> //trim 처리를 한다.

JSTL 비교 연산자

- 테스트환경 1
잘모름

- 테스트환경 2
Apache Tomcat/5.5.9
standard-taglib 1.1.2

  ${test} ${empty test} ${test == null} ${test == 'null'} ${test == ''} ${test == ' '}[각주:1] ${test == '0'} ${test == 0}
 [각주:2] "" true true false false false false false
pageContext.setAttribute("test", null); "" true true false false false false false
pageContext.setAttribute("test", ""); "" true false false true false false true
pageContext.setAttribute("test", " "); " " false false false false true false Exception[각주:3]
pageContext.setAttribute("test", new Integer(0)); 0 false false[각주:4]
Exception[각주:5]
Exception[각주:6] true Exception[각주:7] true true
pageContext.setAttribute("test", "0"); 0 false false false false false true true

- empty 연산자는 test 가 없는 경우 참이다.
- Map, List, 배열이 비어 있는 경우에도 참이다.

[todo] 다른 구현체에서도 해볼 것.(resin, glassfish...구현체 확인해 둘것)
  1. 테스트환경 2에서 추가 [본문으로]
  2. 테스트환경 2에서 추가 [본문으로]
  3. An exception occured trying to convert String " " to type "java.lang.Long" [본문으로]
  4. 테스트환경 1 [본문으로]
  5. 테스트환경 2, An exception occured trying to convert String "null" to type "java.lang.Long" [본문으로]
  6. An exception occured trying to convert String "null" to type "java.lang.Long" [본문으로]
  7. An exception occured trying to convert String " " to type "java.lang.Long" [본문으로]