el выражение в jsp: invoke - PullRequest
       9

el выражение в jsp: invoke

2 голосов
/ 13 февраля 2009

Я пытаюсь использовать следующий фрагмент внутри моего файла тегов:

<%@ attribute name="content" fragment="true"%>
...
<c:set var="part" value="content"/>
<jsp:invoke fragment="${part}" var="partValue"/>
...

и компилятор выдаёт мне следующую ошибку:

Syntax error, insert ") Statement" to complete IfStatement

так что, насколько я понимаю, нельзя использовать выражение el в атрибуте фрагмента. Может ли кто-нибудь указать мне на это ограничение в спецификации? Или дайте совет, как вызвать содержимое фрагмента, если имя фрагмента я вычислю во время выполнения

1 Ответ

1 голос
/ 13 февраля 2009

Технически атрибут фрагмента не является значением rtexprvalue, которое видно из схемы; Это означает, что он оценивается во время компиляции.

Существует действительно очень ограниченный набор вариантов использования того, чего вы пытаетесь достичь. Скорее всего, вы хотите указать несколько фрагментов в файле тегов и позволить некоторым условным элементам решить, какой тег выводить.

<c:choose>
    <c:when test="${condition1}"><jsp:invoke fragment="frag1"/></c:when>
    <c:otherwise><jsp:invoke fragment="frag2"/></c:otherwise>
</c:choose>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...