VO에 useYN이라는 변수가 있다. 물론 String형으로 선언된.

이 변수에 'Y'라는 값을 받아와서 query xml에서 조건문으로 비교를 했는데 NumberformatException이 난다면?

당황하지말고...다음과 같이 해본다.





자, 금방 해결되었다.


이는  myBatis 문제는 아니고 OGNL(Object Graph Navigation Language) 의 문제.

OGNL 인터프리터에서는 위 구문의 ‘Y’를 char 형으로 인식하고, ‘YY’나 “Y”는 String으로 인식한다. java의 char형은 실제로 문자의 코드값을 저장하기 때문이라고 한다.

해결책으로는 다음과 같은 방법이 있다.

1. <if test=’stringValue == “Y”‘> – 쌍따옴표와 홑따옴표의 위치를 변경 (이건 헷갈릴거같고)
2. <if test=”stringValue == &quot;Y&quot;”> – 쌍따옴표를 HTML 코드로 변경(이건..음...)
3. <if test=”stringValue == ‘Y’.toString()”> – toString() 함수를 사용해 String 형으로 변환(당첨)

(출처 : http://t-ara72.blogspot.kr/2013/10/mybatis-numberformatexception.html)





+ Recent posts