MyFaces Discussion
I am planning to write a simple component, 

My component will take one parameter from the tag through the Tag class.

I am using my tag in the jsp page like this: 

<test:testTag jspID="<%=request.getParameter("id")%>">

My Tag class is like this:

public class TestTag extends UIComponentTag {

        private String jspID = null;

        public String getRendererType() {
        return null;
        }

        public String getComponentType() {
        return "com.tags.BreadCrumbs";
        }

        public void setJspID(String jspID) {
        this.jspID = jspID;
        }

        public void setProperties(UIComponent component) {
        // always call the superClass method first
        super.setProperties(component);           
        setString(component, "jspID", jspID);
        }

        public void setString(UIComponent component, String attributeName,
            String attributeValue) {
        if (attributeValue == null)
            return;
        if (isValueReference(attributeValue)) {
            setValueBinding(component, attributeName, attributeValue);
        } else {
            component.getAttributes().put(attributeName, attributeValue);
        }
        }
        public void setValueBinding(UIComponent component, String attributeName,
            String attributeValue) {
        FacesContext context = FacesContext.getCurrentInstance();
        Application app = context.getApplication();
        ValueBinding vb = app.createValueBinding(attributeValue);
        component.setValueBinding(attributeName, vb);
    }
    public void release() {
        super.release();      
                jspID = null;
    }
}
My Component class code is like this:

        public void encodeBegin(FacesContext context) throws IOException {
        ResponseWriter writer = context.getResponseWriter();
        String clientId = getClientId(context);
                String jspID = null;
                jspID = (String) getAttributes().get("jspID");
                System.out.println("jspID in Component class:"+jspID);
        }


If I call this component by changing id value, setProperties method is
not calling every time.

TIA,

Regards,
Ramesh

Reply via email to