Domanda

Sto cercando di utilizzare il seguente frammento di codice all'interno del mio file di tag:

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

e compilatore mi dà il seguente errore:

Syntax error, insert ") Statement" to complete IfStatement

in modo a quanto mi risulta non è consentito l'uso el espressione in attributo frammento. Potrebbe qualcuno mi punto a questa restrizione nella specifica? O dare consigli come richiamare contenuto di frammento se il nome del frammento a calcolare in fase di esecuzione

È stato utile?

Soluzione

Tecnicamente l'attributo frammento non è un rtexprvalue, che può essere visto dallo schema; che significa che è valutata al momento della compilazione.

Non c'è davvero solo un insieme molto limitato di casi d'uso per quello che stai cercando di raggiungere. Molto probabilmente si desidera fornire più frammenti di un file di tag e far entrare un po condizionale decidere quale tag per l'output.

<c:choose>
    <c:when test="${condition1}"><jsp:invoke fragment="frag1"/></c:when>
    <c:otherwise><jsp:invoke fragment="frag2"/></c:otherwise>
</c:choose>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top