jsf 2 - Using bootstrap related tags inside JSF2 h:inputText component -
is there anyway utilize bootstrap related tags in jsf2 components? illustration i'm interested in using bootstrap typeahead feature requires
<h:inputtext id="typeahead" type="text" data-provide="typeahead"></h:inputtext> but since data-provide doesn't exist h:inputtext gets stripped out , typeahead feature not work.
depends on jsf version you're using.
in jsf 2.0/2.1, it's not possible specify additional attributes. jsf html renderers render predefined attributes. you'd need create custom renderer accomplish desired job. minimize boilerplate code, you're forced extend implementation-specific renderer. it's unclear 1 you're using, here's mojarra targeted example:
import com.sun.faces.renderkit.html_basic.textrenderer; public class mytextrenderer extends textrenderer { @override protected void getendtexttorender(facescontext context, uicomponent component, string currentvalue) throws ioexception { object dataprovide = component.getattributes().get("data-provide"); if (dataprovide != null) { context.getresponsewriter().writeattribute("data-provide", dataprovide, null); } super.getendtexttorender(context, component, currentvalue); } } register follows in faces-config.xml run:
<render-kit> <renderer> <component-family>javax.faces.input</component-family> <renderer-type>javax.faces.text</renderer-type> <renderer-class>com.example.mytextrenderer</renderer-class> </renderer> </render-kit> in jsf 2.2, it's possible new passthrough namespace or <f:passthroughattribute> tag. see what's new in jsf 2.2? - html5 pass-through attributes.
thus, so:
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough"> ... <h:inputtext id="typeahead" a:data-provide="typeahead" /> (note type attribute defaults text already)
or:
<h:inputtext id="typeahead"> <f:passthroughattribute name="data-provide" value="typeahead" /> </h:inputtext> see also: custom html tag attributes not rendered jsf jsf-2 twitter-bootstrap
No comments:
Post a Comment