该指令是动态指令,也用于包含某个页面。 它不会导入页面的编译指令,而只是将导入页面的正文内容导入到页面中。
以下是动作指令的语法格式:
或者
lush属性用于指定是否将输出缓存转移到导入的文件中。 如果为 true,则它包含在导入的文件中。 如果是flase,则包含在原始文件中。
对于第二种语法格式,可以在导入的页面中添加额外的请求参数。
以下页面使用动态导入语法来导入指定的 JSP 页面。
jsp-.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
jsp测试
<body>
上面的页面使用动态导入语法来导入.jsp。 从表面上看,这个页面的执行效果和使用静态导入的结果没有什么区别,但是如果你查看jsp-.jsp页面生成的源代码,你会看到以下内容:
org.apache.jasper.runtime.JspRuntimeLibrary.inclue(request , response ,"scriptlet.jsp" ,out,false);
上面的代码展示了动态导入的关键:动态导入只是用方法插入目标页面的内容,而不是将目标页面完全导入到本页面中。
总结一下,静态导入和动态导入有以下三个区别:
1、静态导入是将导入页面的代码完全集成,即将两个jsp页面合并为一个,而动态导入则是通过方法来引入导入页面的内容。
2、静态导入时,导入页面的编译指令生效,动态导入时,导入页面的编译指令不起作用,只插入导入页面的正文内容。
3.动态包含可以添加额外的参数:
上面的jsp代码中,jsp:指令中仍然使用param指令传入参数。 该参数可以通过-页面中的对象获取。
-.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
forward结果页
<body>
<%=request.getParameter("age")%>>
页面执行渲染如下:
其实动作指令和指令很相似(指令见我之前的文章)。 他们都使用方法来介绍目标页面。 不同的是:指令执行时,目标页完全替换原页; 当指令执行时,页面就被插入。 也就是说,用目标页面替换原始页面,并将目标页面插入到原始页面中。