关于Springmvc中include与Sitemesh装饰器的使用

  !!!转载请注明出处=>http://www.cnblogs.com/funnyzpc/p/7283443.html

静态包含:example:<%@include file="xxx.jsp"%>

  文件的包含是发生在 jsp向servlet转换时期 ,相当于将jsp编译成html静态文件,由于对包含的文件不再编译(直接拷贝到父页面),则只产生一个class文件。

动态包含:example<jsp:include page="xxx.jsp">

  文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期 ,由于每次访问页面都会对jsp(-->java)进行编译(当做一个单独的页面进行编译),遂会产生多个class文件。

一下将现身说法:

以上项目的目录结构,包含文件和被包含文件属同一个目录=>

下面是访问pbob.jsp(父页面)后的效果,可以看到没有对象访问的情况下静态包含和动态包含并没有差别,内容可以正常包入,被包入的页面的js也是正常执行的:

下面我将被包含的页面都设置上值,在父页面中访问值,将值的作用域改成page,可以看到:动态包含的dd.jsp中的值无法在父页面中被访问到,而静态包含的cc.jsp中的值可以被正常访问:

以上只是jsp的简单应用,如果是作为装饰器,需要在被包含页面设置值或赋值的时候一定要注意啦,说到装饰器顺便提一下sitemesh(现在是3.0版本),sitemesh是个很好用的装饰器工具,

一个明显的好处是不用像原生jsp那样每个页面都include,使用的时候直接在配置文件中设置需要用到的装饰的页面,比如banner、menu等等~,非常方便,一下展示下xml中的基本装饰配置:

同一类别的页面可以使用同一个装饰页面,当然也可以排除用哪些页面, 目前需要注意到的是sitemesh在大容量页面的装饰的时候会比较耗内存,根据实际项目需求慎重选择~,当然还有其他装饰器也很不错,这里就不一一介绍啦~

最新文章

  1. sql的各种join连接
  2. power 做表
  3. node-webkit教程(7)Platform Service之APP
  4. IDEA默认常用快捷键
  5. SVN命令详解
  6. Unity3D ShaderLab 语法:Properties
  7. Hibernate4.x之入门篇
  8. 如何判断一个Http Message的结束——python源码解读
  9. MVC快速分页
  10. [CSS3] 学习笔记-CSS选择器
  11. 初次尝试Linux并记录一二
  12. [转]正则匹配时对象必须为string or bytes-like object
  13. 使用docker部署skywalking
  14. vscode 正则表达式替换
  15. bzoj2809 [Apio2012]dispatching(左偏树)
  16. java导出excel 浏览器直接下载或者或以文件形式导出
  17. elasticsearch索引路径规则
  18. MySQL: sql_safe_updates
  19. jquery选中以什么开头的元素
  20. Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍

热门文章

  1. MySQL相关命令
  2. iOS UICollectionView(转二)
  3. ios 中的循环引用问题及解决
  4. Python学习日记:day7-----集合
  5. 童话故事 --- 什么是SQL Server Browser
  6. git正确的删除远程仓库的文件并用.gitignore忽略提交此文件
  7. C/C++调用Golang 二
  8. MongoDB数据库详解
  9. R语言命令行参数
  10. Head First设计模式之抽象工厂模式