0

HTML コンテンツを生成するカスタム JSP タグと、この HTML コードによって呼び出される JavaScript 関数があります。現在の実装では、SCRIPT タグは HTML コードのすぐ上に作成されます。

既存のコード ベースを変更しないようにするために、SiteMesh またはその他のデコレータ ツールを使用して、ページの HEAD セクション内にこれらのスクリプトをプルアップしたいと考えています。

SiteMesh が<content tag="...">要素からコンテンツを抽出できることは知っていますが、SCRIPT などの他のタグでも可能かどうか疑問に思っていました。

これは SiteMesh で可能ですか、それを可能にするツールを知っていますか?

ありがとうございました!

4

1 に答える 1

1

SiteMesh のHTMLPageParserは拡張可能であるため、HTMLPageParser を拡張し、次のように HTMLPageParser の代わりに独自のクラスを使用するように SiteMesh を構成することで、独自のカスタム ルールを追加して<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>

于 2009-12-21T02:53:58.360 に答える