<%@ include>和<jsp:include>和<c:import>
jsp中include有两种方式:
1.指令元素include:<%@ include file=""%>
2.动作元素include:<jsp:include page="" fluse="true"/>
这两种方式有啥用?有什么区别?这一切都应该从他们的原理入手分析,下面一个一个分析
一、<%@ include file=""%>:静态包含
<%@ include file="文件的相对路径或绝对路径"%>
file属性为要引入文件的相对路径或绝对路径,不支持表达式,也不允许通过?向被引入文件传递参数
工作流程:

<%@ include file="include.jsp"%>执行时间:翻译过程中执行引入操作(将jsp转换为servlet)。
注意:因为index.jsp中包含<body>元素,所以include.jsp中最好不要包含<body>元素,因为<%@include%>会将include.jsp页面上的所有元素都包含到index.jsp中了。
二、<jsp:include page="" fluse="true"/> 动态包含
<jsp:include page="被包含文件的路径" flush="true/false">
<jsp:param name="参数名称" value="参数值"/>
</jsp:include>
接收页面通过el表达式获取参数值:
${param.参数名称}
page属性为被包含文件的相对路径或绝对路径,支持表达式,可以通过?传递参数。
<jsp:param> 子标签可以向被包含的动态页面中传递参数
flush表示在载入引入文件内容时是否清空缓冲区,对于jsp1.2以下版本需要设置为true,高版本默认false就可以
工作流程:

由于html文件没法翻译成class,所以jsp:include引入html会没做用
三:<c:import>动态包含
<c:import url="/km/imeeting/km_imeeting_main/kmImeetingMain_add_completeHead.jsp" charEncoding="UTF-8"> <c:param name="approveModel" value="${lbpmApproveModel}"></c:param> </c:import>
kmImeetingMain_add_completeHead.jsp页面通过el表达式获取参数值:https://www.cnblogs.com/xdp-gacl/p/3938361.html
${param.approveModel}
<jsp:include page=""/> action和<c:import url=""/> jstl tag都是动态加载。但是c:import则更为灵活。jsp:include只能include当前web app下的页面,而c:import则可以从外部容器加载内容。

浙公网安备 33010602011771号