Olá pessoal,
Estou tentando atualizar o valor de um objeto com o a4j mas não está funcionando.
Segue meu código:
JSP:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<f:view>
<head>
<link href="css/estilos.css" rel="stylesheet" type="text/css" />
</head>
<body style="border: 0px; padding: 0px;">
<h:dataTable id="items" value="#{dataTableTeste.listaPessoa}" var="p" style="width:600px">
<h:column>
<h:form id="pessoas">
<rich:simpleTogglePanel switchType="client" label="#{p.nmPessoa}"
opened="false" styleClass="simpleTogglePanel" id="togllePessoa">
<h:panelGrid border="0" columns="3" width="600"
columnClasses="panelGridColunaEsquerda, panelGridColunaCentral, panelGridColunaDireita">
<h:outputText value="Nome:" />
<rich:inplaceInput styleClass="inputTextGrande"
editClass="inputTextGrande" immediate="true"
value="#{p.nmPessoa}">
<a4j:support event="onchange" reRender="items" />
</rich:inplaceInput>
<h:commandButton value="Salvar" action="#{dataTableTeste.salvarPessoa}" />
</h:panelGrid>
</rich:simpleTogglePanel>
</h:form>
</h:column>
</h:dataTable>
</body>
</f:view>
</html>
Bean
public class DataTableRerenderTeste {
private ListDataModel listaDataTable;
private Pessoa pessoa;
public DataModel getListaPessoa(){
listaDataTable = new ListDataModel(montarLista());
return listaDataTable;
}
@SuppressWarnings("unchecked")
private List montarLista() {
List lista = new ArrayList<Pessoa>();
Pessoa p;
for(int i = 0; i < 5; i++) {
p = new Pessoa();
p.setNmPessoa("Pessoa " + i);
lista.add(p);
}
return lista;
}
//Estou debugando esse ponto, mas acaba chegando sempre o valor original
//e não o novo valor que inseri no campo texto.
public String salvarPessoa() {
pessoa = (Pessoa) listaDataTable.getRowData();
pessoa.getNmPessoa();
return "pessoaSalva";
}
}
Valeu pela ajuda
[]'s
Daniel
