Pessoal,
Ao inserir um selectonemenu na minha tela JSF primefaces com objetos, a action nao executa mais. A tela:
<ui:composition template="template.xhtml">
<ui:define name="centro">
<h:form id="form">
<p:dataTable id="notas" var="nota" value="#{conhecimentoBean.lista}"
paginator="true" rows="10"
filteredValue="#{conhecimentoBean.conhecimento.notasFiscais}"
rowKey="#{nota.nNf}" selection="#{conhecimentoBean.selecionadas}">
<f:facet name="header">
Notas
</f:facet>
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="Numero">
<h:outputText value="#{nota.nNf}" />
</p:column>
<p:column headerText="Cliente">
<h:outputText value="#{nota.cliente.nome}" />
</p:column>
<p:column headerText="Logistica" id="logColumn"
filterBy="#{nota.logistica.nomeLogistica}"
filterOptions="#{conhecimentoBean.opcoesLog}"
filterMatchMode="exact">
<h:outputText value="#{nota.logistica.nomeLogistica}" />
</p:column>
<p:column headerText="Status">
<h:outputText value="#{nota.status.nome}" />
</p:column>
</p:dataTable>
<h:selectOneMenu value="#{conhecimentoBean.conhecimento.veiculo}">
<f:selectItems value="#{conhecimentoBean.opcoesVei}" var="t"
itemLabel="#{t.modelo}" itemValue="#{t}" />
</h:selectOneMenu>
<p:commandButton value="Gerar"
actionListener="#{conhecimentoBean.gerar}" />
</h:form>
</ui:define>
</ui:composition>
O bean:
@ManagedBean
@SessionScoped
public class ConhecimentoBean implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(ConhecimentoBean.class);
private List<NotaFiscalVO> lista = null;
private ServiceDTO requestDTO = new ServiceDTO();
private ServiceDTO responseDTO = new ServiceDTO();
private ConhecimentoVO conhecimento = new ConhecimentoVO();
private SelectItem[] opcoesLog = null;
private List<LogisticaVO> logisticas = null;
private NotaFiscalVO[] selecionadas;
private List<VeiculoVO> veiculos = null;
private SelectItem[] opcoesVei = null;
public List<VeiculoVO> getVeiculos()
{
return veiculos;
}
public void setVeiculos(List<VeiculoVO> veiculos)
{
this.veiculos = veiculos;
}
public SelectItem[] getOpcoesVei()
{
SelectItem[] itens = new SelectItem[veiculos.size()];
for (int i = 0; i < veiculos.size(); i++)
{
itens[i] = new SelectItem(veiculos.get(i), veiculos.get(i)
.getModelo());
}
return itens;
}
public void setOpcoesVei(SelectItem[] opcoesVei)
{
this.opcoesVei = opcoesVei;
}
public NotaFiscalVO[] getSelecionadas()
{
return selecionadas;
}
public void setSelecionadas(NotaFiscalVO[] selecionadas)
{
this.selecionadas = selecionadas;
}
public ConhecimentoBean()
{
lista = atualizarDados();
}
public void gerar(ActionEvent actionEvent)
{
conhecimento.setNotasFiscais(Arrays.asList(selecionadas));
requestDTO.set("vo", conhecimento);
try
{
responseDTO = BusinessDelegate.getInstance().conhecimentoInserir(
requestDTO);
limparServiceDTO();
atualizarDados();
}
catch (Exception e)
{
logger.error(e);
}
}
private void limparServiceDTO()
{
conhecimento = new ConhecimentoVO();
requestDTO = new ServiceDTO();
responseDTO = new ServiceDTO();
}
@SuppressWarnings("unchecked")
public List<NotaFiscalVO> atualizarDados()
{
List<NotaFiscalVO> NotasVOsBanco = null;
List<LogisticaVO> LogVOsBanco = null;
List<VeiculoVO> VeiculoVOsBanco = null;
try
{
responseDTO = BusinessDelegate.getInstance().notaFiscalListar();
NotasVOsBanco = (List<NotaFiscalVO>) responseDTO.get("lista");
lista = NotasVOsBanco;
responseDTO = BusinessDelegate.getInstance().logisticaListar();
LogVOsBanco = (List<LogisticaVO>) responseDTO.get("lista");
logisticas = LogVOsBanco;
responseDTO = BusinessDelegate.getInstance().veiculoListar();
VeiculoVOsBanco = (List<VeiculoVO>) responseDTO.get("lista");
veiculos = VeiculoVOsBanco;
limparServiceDTO();
}
catch (Exception e)
{
logger.error(e);
}
return ((List<NotaFiscalVO>) NotasVOsBanco);
}
public List<NotaFiscalVO> getLista()
{
return lista;
}
public void setLista(List<NotaFiscalVO> lista)
{
this.lista = lista;
}
public ConhecimentoVO getConhecimento()
{
return conhecimento;
}
public void setConhecimento(ConhecimentoVO conhecimento)
{
this.conhecimento = conhecimento;
}
public SelectItem[] getOpcoesLog()
{
SelectItem[] itens = new SelectItem[logisticas.size()];
for (int i = 0; i < logisticas.size(); i++)
{
itens[i] = new SelectItem(logisticas.get(i), logisticas.get(i)
.getNomeLogistica());
}
return itens;
}
public void setOpcoesLog(SelectItem[] opcoesLog)
{
this.opcoesLog = opcoesLog;
}
public List<LogisticaVO> getLogisticas()
{
return logisticas;
}
public void setLogisticas(List<LogisticaVO> logisticas)
{
this.logisticas = logisticas;
}
}