Buggy code:
@ FacesRenderer ( componentFamily = C . BSFCOMPONENT , rendererType = "net.bootsfaces.component.inputText.InputText" ) public class InputTextRenderer extends CoreRenderer { @ Override public void decode ( FacesContext context , UIComponent component ) { } @ Override public Object getConvertedValue ( FacesContext fc , UIComponent c , Object sval ) throws ConverterException { } protected Converter resolveConverter ( FacesContext context , UIComponent c ) { } @ Override public void encodeEnd ( FacesContext context , UIComponent component ) throws IOException { if ( ! ( component . isRendered ( ) ) ) { return ; } InputText inputText = ( ( InputText ) ( component ) ) ; ResponseWriter rw = context . getResponseWriter ( ) ; String clientId = inputText . getClientId ( ) ; int span = inputText . getSpan ( ) ; if ( span > 0 ) { rw . startElement ( "div" , component ) ; rw . writeAttribute ( "class" , ( "col-md-" + span ) , "class" ) ; } UIComponent prep = inputText . getFacet ( "prepend" ) ; UIComponent app = inputText . getFacet ( "append" ) ; boolean prepend = prep != null ; boolean append = app != null ; String label = inputText . getLabel ( ) ; { if ( ! ( inputText . isRenderLabel ( ) ) ) { label = null ; } } String t ; if ( component instanceof InputSecret ) { t = "password" ; } else { t = inputText . getType ( ) ; if ( t == null ) t = "text" ; } rw . startElement ( "div" , component ) ; if ( null != ( inputText . getDir ( ) ) ) { rw . writeAttribute ( "dir" , inputText . getDir ( ) , "dir" ) ; } Tooltip . generateTooltip ( context , inputText , rw ) ; rw . writeAttribute ( "id" , clientId , "id" ) ; if ( inputText . isInline ( ) ) { rw . writeAttribute ( "class" , "form-inline" , "class" ) ; } else { rw . writeAttribute ( "class" , "form-group" , "class" ) ; } if ( label != null ) { rw . startElement ( "label" , component ) ; rw . writeAttribute ( "for" , ( "input_" + clientId ) , "for" ) ; generateErrorAndRequiredClass ( inputText , rw , clientId ) ; rw . writeText ( label , null ) ; rw . endElement ( "label" ) ; } if ( append || prepend ) { rw . startElement ( "div" , component ) ; rw . writeAttribute ( "class" , "input-group" , "class" ) ; } if ( prepend ) { R . decorateFacetComponent ( inputText , prep , context , rw ) ; } rw . startElement ( "input" , inputText ) ; rw . writeAttribute ( "id" , ( "input_" + clientId ) , null ) ; <START_BUG> rw . writeAttribute ( "name" , clientId , null ) ; <END_BUG> rw . writeAttribute ( "type" , t , null ) ; generateStyleClass ( inputText , rw ) ; String ph = inputText . getPlaceholder ( ) ; if ( ph != null ) { rw . writeAttribute ( "placeholder" , ph , null ) ; } if ( inputText . isDisabled ( ) ) { rw . writeAttribute ( "disabled" , "disabled" , null ) ; } if ( inputText . isReadonly ( ) ) { rw . writeAttribute ( "readonly" , "readonly" , null ) ; } renderPassThruAttributes ( context , component , INPUT_TEXT ) ; String autocomplete = inputText . getAutocomplete ( ) ; if ( ( autocomplete != null ) && ( autocomplete . equals ( "off" ) ) ) { rw . writeAttribute ( "autocomplete" , "off" , null ) ; } String v = getValue2Render ( context , component ) ; rw . writeAttribute ( "value" , v , null ) ; AJAXRenderer . generateBootsFacesAJAXAndJavaScript ( FacesContext . getCurrentInstance ( ) , inputText , rw ) ; rw . endElement ( "input" ) ; if ( append ) { R . decorateFacetComponent ( inputText , app , context , rw ) ; } if ( append || prepend ) { rw . endElement ( "div" ) ; } rw . endElement ( "div" ) ; if ( span > 0 ) { rw . endElement ( "div" ) ; } Tooltip . activateTooltips ( context , inputText ) ; } private void generateStyleClass ( InputText inputText , ResponseWriter rw ) throws IOException { } }

Fix:
rw . writeAttribute ( "name" , ( "input_" + clientId ) , null ) ;