O erro é a vinculação com as tags HTML.
O JSF oferece diversos componentes básicos para o
desenvolvimento de aplicações web que utilizam HTML, entre eles, botões, caixas
de texto, formulários, checkboxes, comboboxes e muitos outros. Contudo, durante
o desenvolvimento, é comum surgir a necessidade de outros componentes mais
avançados que não existam na biblioteca padrão. Nestes casos, o desenvolvedor
pode criar os seus próprios componentes.
O uso de componentes no JSF tem como objetivo trazer a forma
de criar programas desktops para o desenvolvimento web, buscando simplificar
este desenvolvimento que é bem mais complexo por envolver diversas outras
variáveis, como: request, response e escopo. Um exemplo de
simplificação presente em todos os componentes IU está na comunicação entre a
camada de visão (páginas) e a camada de controle, que é realizada através da
chamada de managed beans "
Fonte: http://www.devmedia.com.br/customizando-componentes-no-jsf-2-0-java-magazine-85/18491