qod*_*nja 2 jsp taglib include
我真的不熟悉它在JSP中的工作原理
但是在
main.jsp模板有这样的:
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>
Run Code Online (Sandbox Code Playgroud)
然后在common_head.jsp中我们又有了这个:
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)
这有必要吗?
或换句话说
taglib声明是否传播到包含文件?
是的,这是必要的.在第一次执行之前,每个JSP文件将被单独转换/转换/编译为独立Servlet类.所有标签都将被翻译成"真正的"Java代码/方法.如果您没有声明taglib,那么JSP编译器不知道为特定标记生成/调用需要哪些Java代码/方法.
在例如Tomcat的情况下,查看/work所有这些编译的JSP的文件夹.查看他们的来源,一切都很清楚.
该
<jsp:include page="/jsp/common_head.jsp"/>
Run Code Online (Sandbox Code Playgroud)
...标签是动态包含意味着它动态调用common_head.jsp页面,该页面独立于包含页面进行编译.因此,应该需要taglib指令.
另一方面,如果你使用include 指令进行静态包含
<%@ include file="/jsp/common_head.jsp" %>
Run Code Online (Sandbox Code Playgroud)
...文件将被复制粘贴并使用包含它的页面进行编译.然后不需要taglib指令.
在任何情况下,您可能希望包含taglib只是为了获得编辑器在开发过程中使用的标签的支持.
请注意,静态文件是静态包含的,即使使用jsp:include标记也是如此
include指令:http://java.sun.com/products/jsp/syntax/1.2/syntaxref129.html#997991
jsp包括:http://java.sun.com/products/jsp/syntax/1.2/syntaxref1214.html
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |