Bom galera estou com seguinte problema. Quero excluir um objeto do meu DataTable e está caindo em uma Exceção é alguma coisa .
OBS: A exceção que está dando, é alguma coisa do meu <p: selectOneMenu> , onde estou carregando meu valores no combobox. Deixei alguns comentarios ai no converter dá pra entender.
Meu Xhtml:
`
<ui:composition template="/template/layoutpadrao.xhtml"
<f:metadata>
<f:viewParam name=“codigo” value="#{cadastroAgenda.agendamento}" converter=“convertAgenda” />
</f:metadata>
<h:outputStylesheet library="css" name="sistema.css" />
<ui:define name="titulo">
#{cadastroAgenda.editando ? 'Editando Agendamento': 'Agendando Cliente'}
</ui:define>
<ui:define name="Botao">
<h:form>
<ui:include src="/template/layoutCabecalho.xhtml" />
</h:form>
</ui:define>
<ui:define name="corpo">
<h:form id="frm">
<br />
<br />
<p:button outcome="consultaagenda" value="consultar agenda" styleClass="letra" icon="ui-icon-search"/>
<br />
<br />
<p:growl closable="true" />
<p:accordionPanel>
<p:tab
title="#{cadastroAgenda.editando ? 'Editando Agendamento' : 'Novo Agendamento'}">
<h:panelGrid columns="2" styleClass="painel" columnClasses="label campo" id="panel">
<p:outputLabel value="Nome" for="nome" />
<p:inputText id="nome" value="#{cadastroAgenda.agendamento.nome}"
size="25" required="true" label="Campo nome" />
<h:outputLabel value="Tel.Celular" for="celular" />
<p:inputText id="celular"
value="#{cadastroAgenda.agendamento.telefoneCelular}" size="14" />
<p:outputLabel value="Tel.Residêncial" for="resi" />
<p:inputText id="resi"
value="#{cadastroAgenda.agendamento.telefoneResidencial}"
size="14" />
<h:outputLabel value="Funcionario" for="func" />
<p:selectOneMenu value="#{cadastroAgenda.agendamento.funcionario}"
required="true" id="func" label="Funcionario" converter="conversorFuncionario">
<f:selectItem itemLabel="---Selecione o Funcionario---" noSelectionOption="true"/>
<f:selectItems value="#{cadastroAgenda.listfuncionarios}"
var="funcionario" itemLabel="#{funcionario.funcNome}"
itemValue="#{funcionario}" />
</p:selectOneMenu>
<p:outputLabel value="Descrição do Serviço" for="descr" />
<p:inputTextarea id="descr"
value="#{cadastroAgenda.agendamento.descricaoServ}"
style="font-size:13pt;" cols="50" rows="2" required="true"
label="Descrição do Serviço">
<f:validateLength minimum="4" />
</p:inputTextarea>
<p:outputLabel value="Data" for="data" />
<p:calendar value="#{cadastroAgenda.agendamento.data}" size="8"
locale="pt" id="data" required="true" label="Data"
pattern="dd/MM/yyyy">
<f:validator validatorId="domingo" />
</p:calendar>
<p:outputLabel value="Hora" for="hora" />
<p:calendar value="#{cadastroAgenda.agendamento.hora}" id="hora"
size="4" required="true" label="Hora" pattern="HH:mm" locale="pt"
timeOnly="true" minHour="8" maxHour="18">
</p:calendar>
<p:outputLabel value="" />
<h:panelGroup>
<p:commandButton action="#{cadastroAgenda.Incluir()}" value="Salvar" ajax="false" icon="ui-icon-disk" />
<p:commandButton value="Limpar" type="reset" icon="ui-icon-clear" />
</h:panelGroup>
</h:panelGrid>
</p:tab>
</p:accordionPanel>
</h:form>
</ui:define>
</ui:composition>
`
Erro
java.lang.NumberFormatException: For input string: "-- Selecione o Funcionario --" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.<init>(Integer.java:867) at converters.FuncionarioConverter.getAsObject(FuncionarioConverter.java:36) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:171) at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:201) at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:318) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.getConvertedValue(SelectOneMenuRenderer.java:60) at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1045) at javax.faces.component.UIInput.validate(UIInput.java:975) at javax.faces.component.UIInput.executeValidate(UIInput.java:1248) at javax.faces.component.UIInput.processValidators(UIInput.java:712) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1260) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1260) at org.primefaces.util.ComponentUtils.processValidatorsOfFacetsAndChilds(ComponentUtils.java:266) at org.primefaces.component.api.UITabPanel.processValidators(UITabPanel.java:1073) at javax.faces.component.UIForm.processValidators(UIForm.java:253) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1260) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1260) at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:38) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
Conversor
`
@FacesConverter(forClass=Funcionario.class,value=“conversorFuncionario”)
public class FuncionarioConverter implements Converter {
//Repositorios é a classe que pega minha Session.
private Repositorios repositorios = new Repositorios();
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String valor) {
Funcionario retorno = null; //onde estão meu Getters e setters
//Funcionarios é minha interface.
Funcionarios funcionarios = this.repositorios.getFuncionario();
if (valor != null && !valor.equals("")) {
retorno = funcionarios.porCodigo(new Integer(valor));
if (retorno == null) {
String msg = "Não existe agendamento";
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
context.addMessage(null, message);
throw new ConverterException(message);
}
}
return retorno;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object valor) {
if (valor != null && ((Funcionario) valor).getCodigoFunc()!=null) {
return ((Funcionario) valor).getCodigoFunc().toString(); // Pega o codigo e retorna String.
}
return null;
}
}
`