Create custom renderer for UIInput

526 Views Asked by At

I want to create custom renderer for UIInput component. Et the SourcePackage I created Renderers package and class Renderers.TextFieldRenderer, which is following

@FacesRenderer(componentFamily = "javax.faces.UIInput", rendererType = "text")
public class TextFieldRender extends Renderer {

    @Override
    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
        ResponseWriter writer = context.getResponseWriter();
        String clientId = component.getClientId(context);
        String hint= (String) component.getAttributes().get("placeholder");
        writer.startElement("input", component);
        writer.writeAttribute("name", clientId, null);
        writer.writeAttribute("placeholder", hint, "hint");
        writer.endElement("input");
    }
}

Further i'm created faces-config.xml

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
    <component>
        <component-type>mp.text</component-type>
        <component-class>javax.faces.component.UIInput</component-class>
    </component>
    <render-kit>
        <renderer>
            <component-family>javax.faces.component.UIInput</component-family>
            <renderer-type>mp.textrender</renderer-type>
            <renderer-class>Renderers.TextFieldRenderer</renderer-class>
        </renderer>
    </render-kit>
</faces-config>

and text.taglib.xml

<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib>
    <namespace>http://text.com</namespace>
    <tag>
        <tag-name>hintText</tag-name>
        <component>
            <component-type>mp.text</component-type>
            <renderer-type>mp.textrenderer</renderer-type>
        </component>
</facelet-taglib>

But it doesnt work. Even I'm cant use namespace whuch defined in text.taglib.xml. When I'm wrong?

0

There are 0 best solutions below