Пользовательский тег не оценивает выражения; Теги c и fmt оценивают выражения - PullRequest
1 голос
/ 24 сентября 2010

У меня есть страница .jsp , которая начинается с

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/mytags.tld" prefix="mytags" %>

С заголовком mytags.tld следующего содержания:

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>

Выражения поддерживаются основными тегами, поэтому, когда я делаю что-то вроде следующего:

<c:out value="${myPageBean.firstName}"/>

выражение оценено как положено.

Однако, когда я пытаюсь, чтобы мой пользовательский тег оценивал выражение, .jsp отказывается компилироваться.

<mytags:sayHello firstName="${myPageBean.firstName}"/>

Если бы выражения не работали где-либо на странице, мне было бы легче разобраться с этим, но имеет ли смысл, что основные теги ведут себя так, как ожидалось, а мои пользовательские теги - нет? Я работаю с Tomcat 4.1

1 Ответ

1 голос
/ 24 сентября 2010

Поскольку вы используете Tomcat 4.1, у вас есть JSP 1.2. Поддержка EL была введена в спецификации JSP в версии 2.0, поэтому у вас ее нет. Поэтому JSTL 1.0 использует собственную реализацию языка выражений, доступную через ExpressionUtil.

...