zoukankan      html  css  js  c++  java
  • SiteMesh2-sitemesh.xml的其它映射器的用法

    在sitemesh.xml中做常用的三个映射器,总结如下:

    映射器元素的顺序确定优先级。良好的应用程序应使用以下顺序,

    1. Parameter query = ParameterDecoratorMapper(URL参数)
    2. Page specific using meta tag = PageDecoratorMapper(页面meta标签)
    3. 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属性中提供。

    详细说明:https://web.archive.org/web/20071009180816fw_/http://www.opensymphony.com/sitemesh/api/com/opensymphony/module/sitemesh/mapper/package-frame.html

    使用教程参考:

    http://blog.csdn.net/nengyu/article/details/6736943

    http://blog.csdn.net/caomiao2006/article/details/46463077

    http://www.educity.cn/wenda/133329.html

  • 相关阅读:
    numpy模块
    Flask--请求扩展
    Flask补充--threading.local对象
    Flask-Cookies和Session
    Flask--请求上下文
    SQL Server 2005详细安装过程及配置
    Linux设置Mysql开机自启动服务
    重启网卡提示Bringing up interface eth0:
    本地docker容器迁移到服务端
    Window安装tomcat环境
  • 原文地址:https://www.cnblogs.com/EasonJim/p/7087957.html
Copyright © 2011-2022 走看看