el expressão em JSP: invocação
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
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>