Pergunta

Eu não estou muito familiarizado com como isso funciona na JSP

mas no

main.jsp modelo lá é esta:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>

, em seguida, em common_head.jsp temos isso de novo:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>

é necessário?

ou em outras palavras

Você declarações taglib propagadas para incluir arquivos?

Foi útil?

Solução

Sim, isso é necessário. Antes executado pela primeira vez, cada arquivo JSP serão individualmente convertidos / traduzida / compilado para uma classe independente Servlet. Todas as tags será traduzido para "reais" código Java / métodos. Se você não declarar uma taglib, então o compilador JSP não sei o código Java / métodos que precisa gerar / call para as tags específicas.

No caso de, por exemplo, Tomcat, dê uma olhada na pasta /work para todos aqueles compilados JSP. Ver sua fonte e tudo estará claro.

Outras dicas

O

<jsp:include page="/jsp/common_head.jsp"/>

... tag é uma dinâmica incluem o que significa que dinamicamente chama a página common_head.jsp, que é compilado independentemente da página, incluindo. Assim deve ser necessária a diretiva taglib.

Se, por outro lado você fosse fazer uma estática incluem usando o incluem directiva

<%@ include file="/jsp/common_head.jsp" %>

... o arquivo teria sido copiar-colar e e compilado com a página da qual ele está incluído. Então não deve ser necessária a diretiva taglib.

Em qualquer caso, você pode querer ter o taglib incluído apenas para obter apoio editor de tags que você usa durante o desenvolvimento.

Note que os arquivos estáticos são estaticamente incluídos, mesmo com o jsp: incluir tag

incluem directiva: http: //java.sun. com / products / jsp / sintaxe / 1.2 / syntaxref129.html # 997991

jsp incluem: http://java.sun.com/ produtos / jsp / sintaxe / 1.2 / syntaxref1214.html

Como você está incluindo um recurso dinâmico, esse recurso é "independente" por isso deve incluir qualquer biblioteca de tags que você está usando. Outra questão é se você estiver usando as tags ...

Sim, é necessário para compilação JSP. Você também pode usar abaixo taglib em vez de c.tld.

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

espero que isso vai ajudar

Em outros sistemas modelo as definições normalmente transitadas. Eu não vejo por que você deve ter para usá-lo novamente

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top