estou com uma sistema aqui e estou com dificuldade de pegar um valor no SelectOneMenu. Ao utilizar o formulario quando vou submeter ele não pega o o valor que eu escolhi.
html
`
<p:outputLabel value="Funcionario" for="funcio" />
<p:selectOneMenu id="funcio" value="#{consultaServico.funcionario}"
label="funcionario">
<f:selectItem itemLabel="-- Selecione o Funcionario --" noSelectionOption="true" />
<f:selectItems value="#{cadastroServico.listaFuncionario}" var="funcionario"
itemLabel="#{funcionario.funcNome}" itemValue="#{funcionario}"/>
</p:selectOneMenu>
`
Conversor
`
@FacesConverter(forClass=Funcionario.class,value=“conversorFuncionario”)
public class FuncionarioConverter implements Converter {
private Repositorios repositorios = new Repositorios();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String valor) {
Funcionario retorno = null;
if(valor != null){
FuncionarioDAO funcionario = repositorios.getFuncionario();
retorno = funcionario.porCodigo(new Integer(valor));
}
return retorno;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object valor) {
if (valor != null && ((Funcionario) valor).getCodigoFunc()!=null) {
return ((Funcionario) valor).getCodigoFunc().toString();.
}
return null;
}
}
`
Bom dia,
No SelectOneMenu, onde voce esta chamando o converter?
Recomendo fazer algo assim:
h:selectOneMenu id=“funcio"
f:selectItems value=”#{funcio.listOfFuncionarios}" var=“obj_funcio” itemValue=“obj_funcio” itemLabel="# {obj_funcio.name}"
</f:selectItems
h:selectOneMenu
Onde seu listOfFuncionarios é um array list de funcionários que você deseja carregar.
O objeto selecionado será carregado em “obj_funcio”
opa Deu certo consegui listar!
ficou assim!
`
<p:tab title="Filtrar Serviço">
<p:panelGrid columns="2">
<p:outputLabel value="Data" for="data"/>
<h:panelGroup>
<p:calendar value="#{consultaServico.dataInicio}" pattern="dd/MM/yyyy" id="data"
size="9" locale="pt" effect="fold"/>
<p:outputLabel value="ate" for ="ate"/>
<p:calendar value="#{consultaServico.dataFim}" pattern="dd/MM/yyyy" size="9"
locale="pt" effect="fold" id="ate"/>
</h:panelGroup>
<p:outputLabel value="Funcionario" for="funcio" />
<p:selectOneMenu id="funcio" value="#{consultaServico.funcionario}"
converter="conversorFuncionario" label="funcionario">
<f:selectItems value="#{cadastroServico.listaFuncionario}" var="funcionario"
itemLabel="#{funcionario.funcNome}" itemValue="#{funcionario}"/>
</p:selectOneMenu>
<p:commandButton value="Pesquisar" action="#{consultaServico.filtrarSevico()}" update="funcio" ajax="false"/>
</p:panelGrid>
</p:tab>
`
Adicionei uma TAB chamada Excluir serviço e esta aparecendo um erro. na minha TAB anterior.
Erro de conversão ao definir o valor ‘model.Funcionario@24’ para ‘null Converter’.
CODIGO
<p:tab title=“Excluir serviços entre datas”>
<h:panelGrid columns="2">
<p:outputLabel value="Data" for="data5" />
<h:panelGroup>
<p:calendar value="#{consultaServico.dataInicio}" pattern="dd/MM/yyyy"
id="data5" size="9" locale="pt" effect="fold" />
<p:outputLabel value="até" for="ate2"/>
<p:calendar value="#{consultaServico.dataFim}" pattern="dd/MM/yyyy"
size="9" locale="pt" effect="fold" id="ate2" />
</h:panelGroup>
<p:outputLabel value="Funcionario" for="funcio" />
<p:selectOneMenu id="funcion" value="#{consultaServico.funcionario}"
label="funcionario">
<f:selectItems value="#{cadastroServico.listaFuncionario}" var="funcionario"
itemLabel="#{funcionario.funcNome}" itemValue="#{funcionario}"/>
</p:selectOneMenu>
<p:outputLabel />
<p:commandButton icon="ui-icon-search" value="Pesquisar" update="funcio" ajax="false"/>
</h:panelGrid>
</p:tab>`
`