【问题标题】:Is it possible to extract SCRIPT tags using SiteMesh?是否可以使用 SiteMesh 提取 SCRIPT 标签?
【发布时间】:2010-12-27 05:29:11
【问题描述】:

我有生成一些 HTML 内容的自定义 JSP 标记,以及一些由此 HTML 代码调用的 javascript 函数。在当前的实现中,SCRIPT 标记是在 HTML 代码上方创建的。

为避免修改现有代码库,我想使用 SiteMesh 或其他一些装饰器工具在页面的 HEAD 部分中提取这些脚本。

我知道 SiteMesh 可以从 <content tag="..."> 元素中提取内容,但我想知道是否也可以使用其他标签,例如 SCRIPT。

这可以通过 SiteMesh 实现吗,或者知道任何可以让我这样做的工具吗?

谢谢!

【问题讨论】:

    标签: java api decorator sitemesh


    【解决方案1】:

    SiteMesh 的HTMLPageParser 是可扩展的,因此您可以添加自己的自定义规则,通过扩展HTMLPageParser 和configuring SiteMesh to use your class instead of HTMLPageParser 来提取<script> 元素,如下所示:

    import com.opensymphony.module.sitemesh.parser.HTMLPageParser;
    
    public CustomPageParser extends HTMLPageParser {
    
        protected void addUserDefinedRules(State html, PageBuilder page) {
            super.addUserDefinedRules(html, page);
    
            html.addRule(new ScriptExtractingRule(page));
        }
    
    }
    

    我想你的 ScriptExtractingRule 会以标准 SiteMesh ContentBlockExtractingRule 为模型,将内容存储在页面上下文中,这样你的装饰器就可以像访问 <content> 块一样访问块。

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      相关资源
      最近更新 更多