The function size must be used with a prefix when a default namespace is not specified

The function size

프로젝트를 진행하던 도중 다음과 같은 505 에러가 발생하였습니다.

에러 코드

The function size must be used with a prefix when a default namespace is not specified

(기본 네임스페이스를 지정하지 않았을 때는  펑션 사이즈는 반드시 접두사와 사용되어야 합니다.)

The function size

문제는 구버전 톰캣 문제이며 톰캣에서 제공하는 JSP/Servlet 버전이 낮기 때문에 .size() 기능을 인식하지 못하기 때문에 에러를 표현해 내는 것입니다.

흔히 이런 문제는 톰캣 7.0 환경에서 개발하고 6.0버전의 서버에 릴리즈 했을 때 격는 에러 현상중 하나입니다.(제가 그랬습니다.)

더욱이 404에러 페이지 이동까지 적용한다면 로그가 찍히지 않고 그냥 에러페이지로 이동하기 때문에 해결하기가 더욱 어렵습니다.

The function size2

위와 같이 낮은 버전의 Servlet에서는 size()명령어는 에러를 발생하게 됩니다.

해결 방법

1. 톰캣을 7.0 이상으로 세팅하여 프로젝트를 실행한다.

2. <%@ taglib uri=”http://java.sun.com/jsp/jstl/functions” prefix=”fn”  %> 를 JSP 상단에 선언 후     변수.size() 를 fn:length(변수) 로 변환하여 사용한다.

The function size3

다음과 같이 변경하여 페이지가 정상적으로 출력되었습니다.

The function size must be used with a prefix when a default namespace is not specified

에러가 발생하시는 분들은 위와 같이 문제를 해결해 보시기 바랍니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.