multipassreplacementpageparser.java

来自「一个jsp网页布局框架」· Java 代码 · 共 39 行

JAVA
39
字号
package com.opensymphony.module.sitemesh.multipass;import com.opensymphony.module.sitemesh.PageParser;import com.opensymphony.module.sitemesh.Page;import com.opensymphony.module.sitemesh.html.util.CharArray;import com.opensymphony.module.sitemesh.html.HTMLProcessor;import com.opensymphony.module.sitemesh.html.BasicRule;import com.opensymphony.module.sitemesh.html.Tag;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class MultipassReplacementPageParser implements PageParser {    private final Page page;    private final HttpServletResponse response;    public MultipassReplacementPageParser(Page page, HttpServletResponse response) {        this.page = page;        this.response = response;    }    public Page parse(char[] data) throws IOException {        final CharArray result = new CharArray(4096);        HTMLProcessor processor = new HTMLProcessor(data, result);        processor.addRule(new BasicRule("sitemesh:multipass") {            public void process(Tag tag) {                String id = tag.getAttributeValue("id", true);                if (!page.isPropertySet("_sitemesh.removefrompage." + id)) {                    currentBuffer().append(page.getProperty(id));                }            }        });        processor.process();        result.writeTo(response.getWriter());        return null;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?