setupcomponent.java

来自「jsf与JavaScript结合的范例。让你轻松学会网络编程。」· Java 代码 · 共 48 行

JAVA
48
字号
package jsfcssjs;

import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;

import java.io.IOException;

public abstract class SetupComponent extends UIComponentBase {

    protected abstract void setup(FacesContext ctx, UIComponent comp);

    protected void setupTree(FacesContext ctx, UIComponent comp) {
        if (!comp.isRendered())
            return;
        setup(ctx, comp);
        for (Object child : comp.getChildren())
            setupTree(ctx, (UIComponent) child);
    }

    public boolean getRendersChildren() {
        return true;
    }

    public void encodeChildren(FacesContext ctx)
            throws IOException {
        if (!isRendered())
            return;
        setupTree(ctx, this);
        for (Object child : getChildren())
            encodeTree(ctx, (UIComponent) child);
    }

    protected void encodeTree(FacesContext ctx, UIComponent comp)
            throws IOException {
        if (!comp.isRendered())
            return;
        comp.encodeBegin(ctx);
        if (comp.getRendersChildren())
            comp.encodeChildren(ctx);
        else
            for (Object child : comp.getChildren())
                encodeTree(ctx, (UIComponent) child);
        comp.encodeEnd(ctx);
    }

}

⌨️ 快捷键说明

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