Boa tarde amigos,
To com o seguinte problema de lógica, tenho um panelGrid com apenas um input que consulto o produto por código e ao consultar
ja adiciono ele em um dataTable pra exibilido na tela segue abaixo trechos do código pra facilitar o entedimento
<h:form id="form">
<p:messages id="messages" showDetail="true" showSummary="true"/>
<h:panelGrid>
<h:outputText value="Digite o código: " />
<p:inputText value="#{produtoBean.codigo}" converter="converterCod"/>
</h:panelGrid>
<h:panelGrid>
<p:commandButton value="Procurar" action="#{produtoBean.findProduto()}" update="form:messages, form:dataTb">
</p:commandButton>
</h:panelGrid>
<p:dataTable id="dataTb" value="#{produtoBean.listaUpdate}" var="prod"
emptyMessage="Não há nada aqui! flw">
<p:column headerText="Codigo">
<h:inputText value="#{prod.codigo}" style="text-align:center"/>
</p:column>
<p:column headerText="Produto">
<h:inputText value="#{prod.nome}" style="text-align:center"/>
</p:column>
<p:column headerText="Qtde(Estoque)">
<h:inputText value="#{prod.qtde}" style="text-align:center"/>
</p:column>
<p:column headerText="Preço(R$)">
<h:inputText value="#{prod.preco}" style="text-align:center"/>
</p:column>
<p:column headerText="Data cadastro">
<p:calendar value="#{prod.dataCadastro}" converter="converterDate"/>
</p:column>
<f:facet name="footer">
<p:commandButton value="Atualizar" action="#{produtoBean.atualiza()}" update="form:messages">
</p:commandButton>
</f:facet>
</p:dataTable>
</h:form>
ManageBean
@ManagedBean
@SessionScoped
public class ProdutoBean {
[...]
//Esta instanciado no constructor, esta instancia é uzada pra salvar do qual n esta sendo exibido aqui
//Obviamente se eu passar esse produto como parametro do metodo atualizar vai estorar null
private Produto produto;
//Crio a lista do dataTable acima
private List<Produto> listaUpdate = new ArrayList<Produto>();
//Método pra atulizar os produtos
public void atualiza(){
try {
//Método que vem do EJB pra atualizar
Produto produtoAtualizado = prodLocal.update(/*parametro*/);
messagem("Produto: " + "'"+produtoAtualizado.getNome()+"'" + " atualizado com sucesso!");
} catch (Exception e) {
messagemError("Error ao atualizar!");
e.printStackTrace();
}
}
Meu problema aqui ta no atualizar, obviamente se eu passar aquele produto no parametro estora null, porque crio um novo ArrayList só pra exibir os produtos e os inputs do DataTable são os atributos da lista que criei… ai essa é a questão, como vou passar pro Manage que quero atulizar o produto do qual procurou… deu pra entender?
Abraço