SiteMesh2-sitemesh.xml的其它映射器的用法
在sitemesh.xml中做常用的三个映射器,总结如下:
映射器元素的顺序确定优先级。良好的应用程序应使用以下顺序,
- Parameter query = ParameterDecoratorMapper(URL参数)
- Page specific using meta tag = PageDecoratorMapper(页面meta标签)
- Pattern = ConfigDecoratorMapper(URL匹配)
请记住,映射器元素的性质可以覆盖开发人员设置的顺序。
例如,常见的错误是将ConfigDecoratorMapper放在PageDecoratorMapper之前。因为ConfigDecoratorMapper是如此通用,技术上所有页面请求将导致装载器被加载,因此PageDecoratorMapper从不被加载。即使在decorators.xml中有一个排除的情况,匹配也就是不应用装饰器,并且再次PageDecoratorMapper不会被加载。
下面将介绍其它映射器的用法,引用自http://wiki.sitemesh.org/wiki/display/sitemesh/DecoratorMappers:
|
DecoratorMapper |
描述 |
|---|---|
|
AgentDecoratorMapper |
可以确定请求页面的用户代理(即Web浏览器),并映射到合适的Decorator。 |
|
ConfigDecoratorMapper |
DecoratorMapper的默认实现。从配置属性中读取装饰器和映射(默认'/WEB-INF/decorators.xml')。 |
|
CookieDecoratorMapper |
将根据cookie值映射合适的装饰器。 |
|
EnvEntryDecoratorMapper |
允许引用装饰器名称的Web应用程序环境条目,如果没有找到匹配的环境条目,则返回到ConfigDecoratorMapper的行为。 |
|
FileDecoratorMapper |
将会将装饰器的名称视为使用的文件名(在Web应用程序的上下文中)。 |
|
FrameSetDecoratorMapper |
当页面是HTMLPage的一个实例并且isFrameSet()返回true时,将使用指定的装饰器。该装饰器的名称应该在decorator属性中提供-如果没有提供decorator属性,则不会将装饰器应用于基于帧的页面。 |
|
InlineDecoratorMapper |
用于在使用内联装饰器时确定正确的装饰器。 |
|
LanguageDecoratorMapper |
可以确定浏览器中设置的首选语言请求页面,并映射到合适的Decorator(使用“Accept-Language”HTTP头)。 |
|
PageDecoratorMapper |
实际页面决定要使用的装饰器。 页面的“meta.decorator”和“decorator”属性被访问,如果它们中的任何一个包含有效的Decorator的名称,那么该Decorator将被应用。 |
|
ParameterDecoratorMapper |
将根据请求参数选择装饰器。 ParameterDecoratorMapper通过三个属性配置。 decorator.parameter-包含将要映射的装饰器名称的参数。默认为“装饰器”。 例如,如果decorator.parameter是“foobar”,那么myurl.jsp?foobar=mydecorator将映射到名为“mydecorator”的装饰器。 您还可以提供可选的“确认参数”。如果名为parameter.name的参数在请求URI中,并且该参数的值等于parameter.value属性,则只会映射装饰器。 例如,假设parameter.name=confirm和parameter.value=true,URI myurl.jsp?decorator=mydecorator&confirm=true将映射装饰器mydecorator。哪里的URI是myurl.jsp?decorator=mydecorator和myurl.jsp?decorator=mydecorator&confirm=false不会返回任何装饰器。 |
|
SessionDecoratorMapper |
将查看一个会话属性来查找要使用的适当装饰器的名称。如果会话属性存在,则映射器将不会执行任何操作,并允许链中的下一个映射器选择装饰器。 默认情况下,它将查看“decorator”会话属性,但是可以通过使用“decorator.parameter”属性配置映射器来覆盖它。 |
|
PrintableDecoratorMapper |
将检查“printable = true”是否作为请求参数提供,如果是,请使用指定的decorator。该装饰器的名称应在decorator属性中提供。 |
|
RobotDecoratorMapper |
当请求者被识别为搜索引擎的机器人(也称为spider,crawler,ferret)时,将使用指定的装饰器。该装饰器的名称应在decorator属性中提供。 |
使用教程参考:
http://blog.csdn.net/nengyu/article/details/6736943
http://blog.csdn.net/caomiao2006/article/details/46463077
http://www.educity.cn/wenda/133329.html
SiteMesh2-sitemesh.xml的其它映射器的用法的更多相关文章
- SiteMesh2-sitemesh.xml的ParameterDecoratorMapper映射器的用法
继续使用上一章http://www.cnblogs.com/EasonJim/p/7086916.html的例子,改造成使用ParameterDecoratorMapper映射器的方法,这个映射器不需 ...
- SiteMesh2-sitemesh.xml的PageDecoratorMapper映射器的用法
继上一章http://www.cnblogs.com/EasonJim/p/7083165.html中使用的例子中,是通过decorators.xml文件通过URL匹配进行转换的. 而下面这种方法是通 ...
- SiteMesh2-sitemesh.xml的ConfigDecoratorMapper映射器的用法
继上一次的示例工程http://www.cnblogs.com/EasonJim/p/7083165.html,使用的就是ConfigDecoratorMapper映射器,通过指定目录下的页面,都同一 ...
- Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器
关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务 ...
- Mybatis基于XML配置SQL映射器(二)
Mybatis之XML注解 之前已经讲到通过 mybatis-generator 生成mapper映射接口和相关的映射配置文件: 下面我们将详细的讲解具体内容 首先我们新建映射接口文档 sysUse ...
- 深入理解MyBatis的原理(四):映射器的用法
前言:继续深入学习 mybatis 的用法及原理,还是先会用再学习原理. 映射器的主要元素有:select.insert.update.delete.parameterMap(即将被删除,不建议使用) ...
- MyBatis学习笔记3--使用XML配置SQL映射器
<resultMap type="Student" id="StudentResult"> <id property="id&quo ...
- (三)使用XML配置SQL映射器
SqlSessionFactoryUtil.java package com.javaxk.util; import java.io.IOException; import java.io.Input ...
- mybatis 基于xml 配置的映射器
cache 给命名空间的缓存配置 cache-ref 其他命名空间缓存配置的引用 resultMap 描述如何从数据库结果集中来加载对象 <!--column不做限制,可以为任意表的字段,而p ...
随机推荐
- C - GCD LCM
Description The GCD of two positive integers is the largest integer that divides both the integers w ...
- 转 MySQL实验(三) 过程式数据库对象的使用
转 http://blog.csdn.net/anne999/article/details/70432558
- java邮件发送工具
最近在web项目中,客户端注册时需要通过邮箱验证,服务器就需要向客户端发送邮件,我把发送邮件的细节进行了简易的封装: 在maven中需要导入: <!--Email--> <depen ...
- [ USACO 2007 FEB ] Lilypad Pond (Silver)
\(\\\) \(Description\) 一张\(N\times M\)的网格,已知起点和终点,其中有一些地方是落脚点,有一些地方是空地,还有一些地方是坏点. 现在要从起点到终点,每次移动走日字\ ...
- 扩增子分析解读5物种注释 OTU表操作
本节课程,需要先完成<扩增子分析解读>系列之前的操作 1质控 实验设计 双端序列合并 2提取barcode 质控及样品拆分 切除扩增引物 3格式转换 去冗余 聚类 4去嵌合体 非细菌序列 ...
- 个人作业Alpha项目测试
这个作业属于哪个课程 软件工程原理 这个作业要求在哪里 作业要求 团队名称 TEAMPANTHER 这个作业的目标 每个同学必须选取非自己所在团队的3个项目进行测试. 在你所测试的项目的Alpha发布 ...
- 当From窗体中数据变化时,使用代码获取数据库中的数据然后加入combobox中并且从数据库中取得最后的结果
private void FormLug_Load(object sender, EventArgs e) { FieldListLug.Clear();//字段清除 DI = double.Pars ...
- org-table
Table of Contents 1. table 1.1. 创建方式 1.2. 重新对齐 1.3. 行列编辑 1.4. 区域 1.5. 计算 1.6. 其他的 1.7. 行宽度 1.8. 列分 ...
- Android 按钮常用点击事件大总结
很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可 ...
- HDU - 6266 - HDU 6266 Hakase and Nano (博弈论)
题意: 有两个人从N个石子堆中拿石子,其中一个人可以拿两次,第二个人只能拿一次.最后拿完的人胜利. 思路: 类型 Hakase先 Hakase后 1 W L 1 1 W W 1 1 1 (3n) L ...