3
respostas

JSTL - Porque não podemos utilizar o c:url para montar a url do c:import?

Seguindo a lógica do por que utilizaríamos o c:url, para não termos que montar a url dependendo da pagina em que ela estará, não faz sentido eu montar a url de uma informação que será importada em TODAS as paginas de maneira diferente em cada uma das paginas.

3 respostas

Oi João, fui olhar na documentação e realmente o <c:import ou recebe a url completa do que vc quer importar ou a relativa... O <c:url sempre te retorna o endereço completo relativo ao contexto da sua aplicação, então realmente vc não poderia usar...

E ainda tem mais, pode ser que vc queira importar uma jsp que está em web-inf, pq vc usaria o <c:url para apontar o endereço que não pode ser acessado pelo navegador? No fim, acho que eles pensaram direitinho.

Alberto, não entendi. No curso de JSTL explicam que o c:url serve para montar uma url a partir do contexto sem precisar passar o path completo, e isso funciona bem no href por exemplo, inclusive para todas as paginas que estão dentro do WEB-INFO.

Pelo o que eu entendi, o c:url foi a forma que o JSTL criou para eu não precisar me preocupar em ajustar o mesmo link em cada uma das paginas que ele parece (um menu por exemplo), porém se eu uso um template (import de um jsp) para montar o mesmo menu, ou para montar o rodapé, em cada uma das paginas eu precisaria me preocupar com o link relativo ou forçar em todas o path absoluto.

É que um href é diferente de um c:import ... href é algo que funciona no cliente(navegador) e o c:import roda no servidor, é uma include. O que vc falou ta certo, só a parte do web-inf que não... um link, em um href, não funciona para um endereço dentro de web-inf.