SelectOneMenu JSF?

tenho uma Classe BackUser que recebe as informações do formulario atraves de um componente UIInput quando uso somente inputText, e o botão incluir funciona e consigo debugar o programa, mas quando uso SelectOneMenu clico no botao e nao acontece nada além do refresh, o que pode está acontecendo ? recebo o dado do SelectOne atraves de um componente UIInput ou um UISelectItem ? o selectOneMenu está certo?

segue o código:

<h:selectOneMenu  value="#{backUser.inputFuncao}" required="true">
     <f:selectItem itemLabel="[SELECIONE FUNCAO]" itemValue="N"/> 
     <f:selectItem itemLabel="ADMINISTRADOR" itemValue="A"/> 
     <f:selectItem itemLabel="OPERADOR" itemValue="O"/> 
</h:selectOneMenu>

Fala cara,

no Managed Bean BackUser o atributo inputFuncao está declarado com qual tipo? String?

Esse lance de não conseguir debugar é que provavelmente ocorreu algum erro, tente definir a propriedade id no selectOneMenu e depois coloque um <h:message for=“id_do_selectOneMenu”/> para ver se ocorre algum erro.

Aparentemente o seu selectOneMenu está certo, só não precisaria do required=“true” por que sempre vai ter um valor selecionado!

Falow

Ola sic

bem, o atributo inputFuncao já tentei declarar de vários tipos UIInput, UISelectItem, para posteriormente passar para um atributo do tipo string de um determinado Bean. quando uso inputText funciona com UIInput, mas como SelectOneMenu nao.

adicionei o message, e quando clico, exibi a seguinte messagem:
no caso escollhi administrador

Conversion Error setting value ‘A’ for ‘null Converter’.

Comecei a usar Jsf agora … me tira uma dúvida sempre pego os valores de um formulario atraves desses Componentes UICommand ?

Cara, eu costumo utilizar direto algum tipo Wrapper, no seu caso coloque String que irá funcionar. Depois do submit, se você não colocar nenhum converter, todos os dados serão String e caso o tipo no MB seja diferente de String vai acontecer o erro que você falou.

O que está acontecendo no seu caso é que ele pega da View uma String (A, N ou O) só que ele não sabe como converter isso para o tipo que você definiu no MB, por isso o erro.

Use direto tipos Wrapper no MB para recuperar os dados dos fomulários, existem os converters para número e data e se quiser pode criar o seu converter. Quando for String no seu MB não precisa de nenhum converter.

Segue um exemplo para converter um cpf em um Integer no MB:

<h:inputText id="cpf" value="#{testeMB.cpf}">
								
   <f:convertNumber integerOnly="true" pattern="####"/>

</h:inputText>

Procure sobre JSF Converter no google que achará material para estudo.

Falow