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

关于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在大容量页面的装饰的时候会比较耗内存,根据实际项目需求慎重选择~,当然还有其他装饰器也很不错,这里就不一一介绍啦~

时间: 2024-10-19 23:02:13

关于Springmvc中include与Sitemesh装饰器的基本使用的相关文章

python中的无参装饰器和有参装饰器

python中的无参装饰器和有参装饰器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 装饰器特点: 1>.开放封闭原则,即对扩展是开放的,对修改时封闭的: 2>.装饰器本质可以是任意可调用的对象,被装饰的对象也可以是任意可调用对象: 3>.装饰器的功能是在不修改被装饰器对象源代码以及被装饰器对象的调用方式的前提下为其扩展新功能: 4>.装饰器本质是函数,(即装饰其他函数)就是为其他函数添加附加功能. 一.典型装饰器案例 1 #!/usr/bin/env pyth

Python中,关于@property装饰器

1.为什么使用@property装饰器?br/>在类中,当我么不想在外界直接调用到类的属性,或者不想展示属性的真实内容时,可以用到@property.它规定了我们直接用 对象名.属性名 获取对象属性时并不会直接取得对象的属性,而是通过调用@property装饰过的属性函数来给调用者反馈. 2.我们为什么不使用特定的方法来进行上面的操作?原因是因为太繁琐.例: class Person: def __init__(self, username, password) -> None: self.u

SiteMesh装饰器使用总结

SiteMesh是一个Java WEB项目的网页布局和修饰框架. 可以将网页的内容和页面结构分离,达到页面结构共享的目的. 页面装饰效果耦合在目标页面中,无需使用include指令显示包含装饰效果,目标页面和装饰页面完全分离. 整个web应用可以使用相同的装饰页面,风格统一,整体效果更好. SiteMesh通过Filter拦截请求和响应,给原始页面加入装饰,再把装饰后的结果返回给客户端. 根据页面URL查找合适的装饰模板页 提取被访问页的内容,放置到装饰模板中的适当位置. 用法 1.加入site

21.python中的闭包和装饰器

python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 以下说明主要针对 python2.7,其他版本可能存在差异. 也许直接看定义并不太能明白,下面我们先来看一下什么叫做内部函数: def wai_hanshu(canshu_1): def nei_hanshu(canshu_2): # 我在函数内部有定义了一个函数 return canshu_1*canshu_2 return

轻松理解python中的闭包和装饰器 (下)

在 上篇 我们讲了python将函数做为返回值和闭包的概念,下面我们继续讲解函数做参数和装饰器,这个功能相当方便实用,可以极大地简化代码,就让我们go on吧! 能接受函数做参数的函数我们称之为高阶函数,例如filter, map, reduce这些函数 可以定义一个函数作为高阶函数例如: def func(x, y, f): return f(x)+f(y) 可以这样调用func(2,-1,abs) 函数返回结果为3 有些时候,我们不需要显式地定义传入的函数,直接传入匿名函数更方便. 在Pyt

SSM-SpringMVC-12:SpringMVC中BeanNameViewResolver这种视图解析器

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 视图解析器,这个很熟悉啊,之间就用过,就是可以简写/和.jsp的InternalResourceViewResolver 我这次书写的BeanNameViewResolver就是另外一种视图解析器,他有优点,也有缺点,优点可以访问项目外部的网页,并且灵活性很好,缺点有,最后写完案例你就明白了 要说的有处理器中的方法 package cn.dawn.day08ViewResolver; import org.

python中的闭包和装饰器

闭包函数介绍 什么是闭包 维基百科中关于闭包的概念: 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包.闭包可以用来在一个函数与一组 "私有" 变量之间创建关联关系.在给定函数被多次调用的过程中,这些私有变量能够保持其持久性. 对上面这段话总结一下,即python中的闭包需要满足3个条件:1) 内嵌函数,即函数里定义了函数 -- 这对应函数之间的嵌套2) 内嵌函数必须引用定义在外部函数里中的变量(不是全局作用域中的引用)-- 内部

20181122_C#中AOP初探_装饰器模式的AOP_Remoting实现AOP_Castle实现AOP

一.   什么是AOP: a)         AOP是面向切面编程; 就像oop一样, 它也是一种编程思想; i.    Oop思想→一切皆对象, 对象交互组成功能, 功能叠加组成模块, 模块叠加组成系统; 如果把一个个的类比喻成一个个砖头, 那么系统就是一个房子; 房子是由一块块砖头构成, 所以面向对象非常适合做大型系统; 但是面向对象的在应对系统扩展的时候, 就显得力不从心; 如果砖块需要发生变化, 则就会牵扯到很多地方; 因为面向对象是静态的, 内部就是强耦合的关系; 虽然设计模式可以解

面向对象-类中的三个装饰器

为了代码更加完善,引入几个装饰器.. 装饰类中的方法 @classmethod    --->装饰类方法,不用self属性,只用类的cls属性 @staticmethod    --->装饰静态方法,既不用self属性,又不用类cls的属性 @property           --->把一个方法伪装属性 下面具体说说他们的用法: [email protected]装饰类方法,那什么是类方法呢? 在类中一个方法不用对象属性,但使用静态属性,那这个方法就是类方法,被classmethod