PessoALL!! :lol:
Tenho uma lista de clientes cadastrados que montei numa DATATABLE do Rich e do lado de cada registro um COMMANDBUTTON com a função de abrir um MODAL PANEL carregando os dados daquele cliente para alteração, mas não tô conseguindo popular meus INPUT TEXT’s… O código tá ai…
XHTML
<a4j:form>
<a4j:region>
<rich:dataTable id="tbclientes" value="#{actionClientes.listaClientes}"
var="item" rows="10" style="width: 100%;"
binding="#{actionClientes.table}">
<f:facet name="header">
<h:outputText value="Lista de Clientes" />
</f:facet>
<rich:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{item.nome}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Endereço" />
</f:facet>
<h:outputText value="#{item.endereco}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Bairro" />
</f:facet>
<h:outputText value="#{item.bairro}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Cidade" />
</f:facet>
<h:outputText value="#{item.cidade}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Uf" />
</f:facet>
<h:outputText value="#{item.uf}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Cep" />
</f:facet>
<h:outputText value="#{item.cep}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Tel Residência" />
</f:facet>
<h:outputText value="#{item.telefone}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Celular" />
</f:facet>
<h:outputText value="#{item.celular}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Contato" />
</f:facet>
<h:outputText value="#{item.contato}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="E-mail" />
</f:facet>
<h:outputText value="#{item.email}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Alterar" />
</f:facet>
<a4j:commandButton image="imagens/alterar_cliente.png"
alt="Alterar dados do cliente"
action="#{actionClientes.recuperaCliente}"
reRender="panelCliente"
oncomplete="Richfaces.showModalPanel('panelCliente');">
<f:setPropertyActionListener value="#{item}" target="#{actionClientes.clientes}"/>
<f:param id="idAlterar" name="idAlterar" value="#{item.codCliente}" />
</a4j:commandButton>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
<h:commandButton image="imagens/delete.png"
alt="Excluir cadastro do cliente"
action="#{actionClientes.excluirCliente}">
<f:param id="id" name="id" value="#{item.codCliente}" />
</h:commandButton>
</rich:column>
</rich:dataTable>
<rich:datascroller align="left" for="tbclientes" />
</a4j:region>
</a4j:form>
<h:messages showDetail="false" showSummary="true" layout="table"
infoStyle="color:blue; font-family:verdana; font-size:11px;" />
<!-- Modal Panel para alteração dos dados do cliente -->
<rich:modalPanel id="panelCliente" width="700" height="400">
<f:facet name="header">
<h:outputText value="Alteração Cadastral" />
</f:facet>
<f:facet name="controls">
<h:graphicImage value="/imagens/close.png"
onclick="Richfaces.hideModalPanel('panelCliente')" />
</f:facet>
<a4j:form id="formModal" ajaxSubmit="true" reRender="panelCliente">
<h:panelGrid columns="4" id="alterar">
<h:column>
<h:outputText value="Nome:" />
</h:column>
<h:column>
<h:inputText value="#{item.nome}" required="true"
requiredMessage="Preencha o campo Nome" size="40" />
</h:column>
<h:column>
<h:outputText value="Endereço:" />
</h:column>
<h:column>
<h:inputText value="#{item.endereco}" size="40" />
</h:column>
<h:column>
<h:outputText value="Bairro:" />
</h:column>
<h:column>
<h:inputText value="#{item.bairro}" />
</h:column>
<h:column>
<h:outputText value="Cidade:" />
</h:column>
<h:column>
<h:inputText value="#{item.cidade}" />
</h:column>
<h:column>
<h:outputText value="UF:" />
</h:column>
<h:column>
<h:inputText value="#{item.uf}" maxlength="2"
size="2" />
</h:column>
<h:column>
<h:outputText value="CEP:" />
</h:column>
<h:column>
<h:inputText value="#{item.cep}" />
</h:column>
<h:column>
<h:outputText value="Telefone Residência:" />
</h:column>
<h:column>
<h:inputText value="#{item.telefone}"
required="true" requiredMessage="Preencha o campo telefone" />
</h:column>
<h:column>
<h:outputText value="Telefone Celular:" />
</h:column>
<h:column>
<h:inputText value="#{item.celular}" />
</h:column>
<h:column>
<h:outputText value="Outro Contato:" />
</h:column>
<h:column>
<h:inputText value="#{item.contato}" />
</h:column>
<h:column>
<h:outputText value="E-mail:" />
</h:column>
<h:column>
<h:inputText value="#{item.email}" size="50" />
</h:column>
</h:panelGrid>
<a4j:commandButton value="Alterar" id="idAlterar"
action="#{actionClientes.atualizarClientes}">
</a4j:commandButton>
<rich:componentControl for="alterarCliente" attachTo="alterar"
operation="show" event="onclick" />
</a4j:form>
</rich:modalPanel>
<!-- Fim do modal panel -->
E aqui está o método que me retorna o registro que selecionei pelo ID…
public Clientes recuperaCliente(){
Clientes beanCliente = new Clientes();
try {
beanCliente = (Clientes)((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getAttribute("item");
} catch (Exception e) {
e.printStackTrace();
FacesContext.getCurrentInstance().addMessage("erro",
new FacesMessage("Falha ao recuperar registro do cliente!"));
}
return beanCliente; //Me retorna o Bean Populado!!
}
Quando executo a aplicação e clico na opção para alterar ele abre o modal nomalmente mas com os Inputs vázios!!
Qualquer ajuda agradeço!! =)
Caracas brotheerrrrrr… Genial!! Resolveu que é uma beleza!!! Agora entendi… ficou assim: