Bom, quero que o usuário possa selecionar um item no componente selectOneMenu e o valor seja atributo logo após ele selecionar, ou seja, sem a necessidade de ter que da um submit no formulário.
Meu código é o seguinte:
<p:panelGridcolumns="2"styleClass="semBorda"><p:selectOneMenuid="selectOneMenuTabela"converter="entityConverter"value="#{orcamentoMB.selectedTabela}"effect="fade"><f:selectItemitemLabel="Selecione uma Tabela"itemValue=""/><f:selectItemsvalue="#{orcamentoMB.tabelas}"var="tabela"itemLabel="#{tabela.nome}"itemValue="#{tabela}"/></p:selectOneMenu><p:commandButtonvalue="Pesquisar Itens"process="@this"actionListener="#{orcamentoMB.carregarItensTabelaSelecionada}"/></p:panelGrid>
O problema é que ao clicar no botão “Pesquisar Itens” o valor da variável “selectedTabela” ainda é NULO, mesmo ele selecionando algo.
Já pensou em utilizar o AJAX? Não seu caso, não é necessário um commandbuton.
Um artigo pra você da um pesquisada,
Caso tenha alguma dúvida, é só perguntar…
G
gustavo_souza
Olá,
Existe algumas maneiras difrentes de fazer a mesma coisa , eu uso o componente ajax do primefaces com um evento chamado change:
<p:selectOneMenuid="selectOneMenuTabela"converter="entityConverter"value="#{orcamentoMB.selectedTabela}"effect="fade"><f:selectItemitemLabel="Selecione uma Tabela"itemValue=""/><f:selectItemsvalue="#{orcamentoMB.tabelas}"var="tabela"itemLabel="#{tabela.nome}"itemValue="#{tabela}"/><p:ajaxevent="change"update="idComponenteParaUpdate"process="@this"listener="#{orcamentoMB.carregarItensTabelaSelecionada}"/></p:selectOneMenu>
//SeuBean
/**Metodochamadoquandotrocaumitemdacombo*/
publicvoidcarregarItensTabelaSelecionada(javax.faces.event.AjaxBehaviorEventevent){TabelatabelaSelecionada=this.selectedTabela;//valordoitemselecionado
...
}
Sendo que caso vc não queira usar o método listner do ajax, você pode colocar somente …
<p:ajaxevent="change"process="@this">
…que o atributo “selectedTabela” já vai ser setado na hora que o usuario mudar o item da combo.
M
mr.michels
Com certeza existem. O que você fez foi a pior coisa a se fazer no forum, dar a resposta…
Eu mandei um artigo dele usando com ajax do PrimeFaces com intuito de fazer rlanhellas a pesquisar e estudar. Ainda mais por ser um problema simples de desenvolvedores iniciantes.
G
gustavo_souza
Cara,
Se ele for uma pessoa interessada ele vai olhar o link que você enviou, que é super legal … mas muitas vezes a resposta também ajuda, até porque no exemplo que você enviou não possui um exemplo de um ajax dentro de uma combo usando o evento change, ele nunca iria conseguir fazer só com aquele exemplo. O forum não tem o intuito só de ensinar, para isso existem diversas matérias no Google, que através da minha resposta ele pode encontrar diversos conteúdos a respeito do assunto.