2012.05.03 21:53

Spring에서 JSP에서 변수? 객체?를 표현할 때 '$' 표시로 시작하는 표현을 EL 표현식이라고 하는 것을 EL 표현식이 왜 동작이 안되는지 삽질 하면서 알게 되었다.


보통 ${user.id}를 jsp에 쓰게 되면 저 user라는 녀석의 id 값을 뿌려주게 되어있는데, 문제는 정상적으로 동작하지 않고 저 "${user.id}"가 그대로 string으로 출력되는 것이다.


이 문제에 대한 Google 검색 결과... 원인은 크게 네가지(네가지 없는 네가지)

1.Application Server가 JSP 2.0을 지원하지 않는다.

2.web.xml의 Servlet 2.4 or higher가 아니다.

3.@page 가 isELIgnored=true로 설정되어있다.

4.web.xml에 <el-ignored> </el-ignored> 태그가 <jsp-config> 태그 내에 포함.


3번은 무슨말인지 잘 모르겠고...

4번과 같은 태그는 찾아 볼수 업었으며

Tomcat으로 돌리는데 Tomcat 버전이 6.0이기 때문에 JSP 2.0을 지원하지 않는 것은 아니다.

결국 Servlet 버전이 2.4조차도 안된다는 그런 이야기 인데...


어쨌든 해결했다.


아래와 같이 동작하는 것을 해결하기위해


web.xml 파일을 열고 아래에 보이는 것과 같은 태그를 삭제한다.


그리고 나서 <web-app> 이라고 되어있던 부분을 아래와 같이 고친다.

 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">   


그리고 나서 서버를 재시작하면 아래처럼 정상적으로 출력되는 것을 볼 수 있다.


저작자 표시 비영리 변경 금지
신고

'Programming > Spring' 카테고리의 다른 글

EL(달러 기호 or 달러 표시) 표현식  (0) 2012.05.03
Posted by Ianuarias