jsp - 在 JSP 中是否有必要在包含的文件中重新声明标记库?

标签 jsp include taglib

我不太熟悉它在 JSP 中的工作原理

但是在

main.jsp 模板是这样的:

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

然后在 common_head.jsp 中我们又得到了这个:

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

有这个必要吗?

或者换句话说

taglib 声明是否传播到包含文件?

最佳答案

是的,这是必要的。在第一次执行之前,每个 JSP 文件都将单独转换/翻译/编译为独立的 Servlet 类。所有标签都将被翻译成“真正的”Java 代码/方法。如果您不声明标签库,那么 JSP 编译器就不知道它需要为特定标签生成/调用什么 Java 代码/方法。

以 Tomcat 为例,查看所有已编译 JSP 的 /work 文件夹。查看他们的来源,一切都会一目了然。

关于jsp - 在 JSP 中是否有必要在包含的文件中重新声明标记库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683109/

相关文章:

javascript - 这是在 javascript 中插入 JSTL 的正确格式吗?

c++ - 为什么不能#include同一目录中另一个文件中的类?

c++ - C++ 中的包含和类

php - 获取当前 url,不包括包含的文件名

grails - 从 Grails 中的 message.properties 获取一些值

java - bean :message in Struts 1. 3 中的动态键

html - 如何使 Button 在 JSP 页面中无法调整大小

java - JSP 编译错误 - token "throws"上的语法错误,预期抛出

java - 如何使用struts taglib将参数传递给javascript函数?

jsp - 我的网页显示一些 apache tomcat 错误,没有显示我网站的正确页面