웹 개발2018. 9. 4. 13:13

Tomcat 4.1, JDK 4인 환경에서 기능 추가하려니 맞는 라이브러리 찾기가 무척 힘듭니다.


jakarta-taglibs-standard-1.0.6.zip


JSTL을 쓰려고 해도 해당 환경에서 돌리려고 해도 계속 에러가 나와서 JSTL 1.0까지 떨어트리니 작동했습니다.


또 Servlet 버전에 따라 jsp에 적는 taglib uri를 다르게 해야 합니다. ( web.xml의 web-app version 참조 )



버전 2.3 : <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

버전 2.4 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


Tomcat 4.1는 Servlet version 2.3이기에 EL 언어를 사용하기 위해 아래와 같이 isELIgnored="false"를 추가하면 될 것 같은데,


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>

실제로 돌려보면 해당 속성을 지원하지 않는다는 에러가 발생합니다.


org.apache.jasper.JasperException:  Page directive has invalid attribute: isELIgnored


좀 더 조사해 보니 isELIgnored 속성은 JSP 2.0부터 지원하고, Tomcat 4.1은 JSP 1.2까지만 지원해서 EL 언어를 바로 사용하지 못하게 되어있습니다.


EL 언어를 직접 쓰지 못하기 때문에 EL 언어를 사용하려면 JSTL 안에서 사용해야 정상작동합니다.


${attribute} : (X)

<c:out val="${attribute}" /> : (O)


참고로 Tomcat 버전에 따른 최소 Java 버전이나 JSP, Servlet 버전 등이 정리된 표가 있어서 덧붙입니다.


Servlet SpecJSP SpecEL SpecWebSocket SpecJASPIC SpecApache Tomcat VersionLatest Released VersionSupported Java Versions
4.02.33.01.11.19.0.x9.0.118 and later
3.12.33.01.11.18.5.x8.5.337 and later
3.12.33.01.1N/A8.0.x (superseded)8.0.53 (superseded)7 and later
3.02.22.21.1N/A7.0.x7.0.906 and later
(7 and later for WebSocket)
2.52.12.1N/AN/A6.0.x (archived)6.0.53 (archived)5 and later
2.42.0N/AN/AN/A5.5.x (archived)5.5.36 (archived)1.4 and later
2.31.2N/AN/AN/A4.1.x (archived)4.1.40 (archived)1.3 and later
2.21.1N/AN/AN/A3.3.x (archived)3.3.2 (archived)1.1 and later


 ( 해당 표 출처 : http://tomcat.apache.org/whichversion.html )

'웹 개발' 카테고리의 다른 글

CVS commit시 sticky tag 에러, Eclipse에서 해결하기.  (0) 2018.09.03
context path 구하기  (0) 2018.02.22
Malformed fileattr.xml  (0) 2013.02.04
SCRIPT5009: 'JSON' is undefined  (0) 2013.02.01
prototype과 jquery 함께 사용하기.  (0) 2012.02.06
Posted by net4all