본문 바로가기

프로그래밍

[JSTL/JSP] EL 값 로드 후 비교하기



session에 사용자 정보를 담아서 메뉴 출력을 제어하려고
char 타입의 값을 비교대상으로 삼아서 el을 이용한 결과를 확인하려고 했다.

char[] arrLevel = { '1', '1'};

이런 형태로 되어 있는 값을 불러서 비교하도록 jsp에 표현했다.

${arrLevel[0] == '1'}

결과는 false가 나온다.
왜일까?
아래 링크를 보면 답이 나와있었다.


EL은  따옴표('', "")로 쌓인 값을 String으로 인식하기 때문이라고 한다.
이를 해결하는 방법은 해당 값에 .charAt(0)을 취해서 반환받는 char값을 이용하면 된다.

그렇다면 떼어내면 어떻게 될까?
떼어내면 상수를 정수로 인식하고 비교대상 값이 정수가 아니라면 다른 값으로 인식한다.

형변환이 필요한 것이다. char[] 메뉴 컨트롤 하는 것 자체가 문제였다.

2진수 값으로 컨트롤 하기 위해서 사용하였지만 형변환 쪽에서 너무 성의없이 진행하여 
이같은 문제를 겪었다...
좀더 소스에 성의를 보여야겠다... 반성..