Pergunta

Eu estou tentando usar o seguinte trecho dentro do meu arquivo de tag:

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

e compilador me dá o seguinte erro:

Syntax error, insert ") Statement" to complete IfStatement

modo como eu entendo que não é permitida a utilização de el expressão no atributo fragmento. Alguém poderia me aponte para essa restrição na especificação? Ou dar conselhos como invocar o conteúdo do fragmento se o nome de calcular fragmento I em tempo de execução

Foi útil?

Solução

Tecnicamente o atributo fragmento não é um rtexprvalue, que pode ser visto a partir do esquema; que significa que é avaliada em tempo de compilação.

Há realmente apenas um conjunto muito limitado de casos de uso para o que você está tentando alcançar. Muito provavelmente você deseja fornecer vários fragmentos de um arquivo de tag e deixar alguns condicional decidir qual marca a saída.

<c:choose>
    <c:when test="${condition1}"><jsp:invoke fragment="frag1"/></c:when>
    <c:otherwise><jsp:invoke fragment="frag2"/></c:otherwise>
</c:choose>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top