include与jsp:include与s:action与s:include与iframe用法汇总
1.<%@ include file="../top/top.jsp"%>
2.<jsp:include page="coupon.jsp"/>
3.<iframe src="" width="100%" height="200" ></iframe>
4.<s:include value="/CMS/headers/wrap/header.jsp"/>
5.<s:action name="cmsPoint" namespace="/include"/>
jsp开发时,这五种常用的页面引入标签,到底有什么区别,各自适应场合是什么,相信很多人都不陌生,但又感觉莫林两可的,本文将做一个全面的汇总。
注:本文虽然各方面都涉及到了,但是很多细节还没列出来,后续在开发中还会不断总结不断完善,希望与广大it从业的朋友们多交流,共同进步。
------------------------------------------
首先看include和jsp:include
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这该是很多人看到它都会想到的问题。下面一起来看看吧。
通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们
就可以考虑用include。具体在哪些时候用<%@ include file=” ”%>,哪些时候用
<jsp:include page=” ” flush=”true”/>.这种形式。首先要明白的是它们之间的区别
。只有了解了它们用法的不同才理解该在何时去用以及如何选择。
<%@ include file=” ”%>,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的
。)
这里对翻译阶段进行一下说明:我们知道,jsp页面不能原封不动地被传送给浏览器,所有的
jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的。服务器需要一个jsp容器来处理jsp页面。jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求。
Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类?JSP Page implementation
class),并编译这个servlet。这两步就构成了翻译阶段.
由此我们就会知道:jsp页面是把include指令元素所指定的页面的实际内容(也就是代码段
)加入到引入它的jsp页面中,合成一个文件后被jsp容器将它转化成servlet。可以看到这时
会产生一个临时class文件和一个java文件。下面举个例子。
服务器用tomcat,引入页面的jsp文件叫test.jsp。被引入的页面叫date.jsp.这个jsp文件
里存放的是一个有关时间的jsp代码,当前的上下文根设为test
//======date.jsp的源文件=====//
//======以下是test.jsp的源文件=============//
ignoreContextParams="true">
<s:param name="type" value="'headers/new/include'"></s:param>
<s:param name="match" value="'footer_950'"></s:param>
<s:param name="query" value="'city='+oldCity"></s:param>
</s:action>
使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被
调用的Action的name和namespace.如果指定了executeResult参数的属性值为true,该标签会
把Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:
id: 可选属性,作为该Action的引用ID
name:必选属性,指定调用Action
namespace:可选属性,指定该标签调用Action所属namespace
executeResult:必选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不
包含.
ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认
值是false,即传入参数.
下面看一个完整的调用示例:
struts.xml
-----------------------------------
s:include的用法
s:include的效果与jsp:include效果是一样的,一般我习惯用jsp:include
下面给一个完整示例:
s-include.jsp
foot.jsp
-------------------------------
iframe用法
iframe的src可以指向任何地址,它加载的是一个完整的dom模型。
include与jsp:include的归纳参考了一个兄弟的博客,他总结的非常清晰:
http://www.cnblogs.com/Ghost-Draw-Sign/articles/1835974.html
总的来说:
include与jsp:include用的比较多,基本可以满足要求了.
s:action在与s:include用的相对少一点。
iframe也很常用,不过据说它不利于搜索引擎。