Alterar bean selecionado

Olá, GUJ!

Estou com um problema que não encontrei uma solução adequada. Estou com um simples CRUD, onde através de um <h:datatable> são exibidos os registros vindos do BD e há um botão onde eu clico para renderizar o <h:inputtext> quando eu quiser alterá-lo. Porém não consigo fazer com que o o registro selecionado fique editável.

&lt;h:dataTable value="#{contatoMB.listarContato}" var="c"&gt;
&lt;h:column&gt;
    &lt;f:facet name="header"&gt;Nome&lt;/f:facet&gt;				    
    
    &lt;h:inputText value="#{c.nome}" rendered="#{contatoMB.contato.editavel}" /&gt;
    &lt;h:outputText value="#{c.nome}" rendered="#{not contatoMB.contato.editavel}" /&gt;
&lt;/h:column&gt;

&lt;h:commandButton value="Alterar" action="#{contatoMB.editarContato(c)}" rendered="#{not contatoMB.contato.editavel}"  /&gt;  

ManagedBean

package contato;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import dao.ContatoDao;

@ManagedBean
public class ContatoMB {
	
	private Contato 			contato;
	private List&lt;Contato&gt; 		contatoLista;

	public ContatoMB(){
		contato 		= new Contato();
	}
	
	public List&lt;Contato&gt; getListarContato() throws ClassNotFoundException, SQLException {
		contatoLista = new ContatoDao().listarContato();
		return contatoLista;	
	}
	
	public Contato getContato() {
		return contato;
	}

	public void setContato(Contato contato) {
		this.contato = contato;
	}
	
	public void adicionarContato() throws ClassNotFoundException, SQLException {
		ContatoDao cd = new ContatoDao();
				   cd.adicionarContato(getContato().getNome(), 
						   			   getContato().getTelefoneFixo(),
						   			   getContato().getTelefoneCelular());
				   
				   this.contato = new Contato();
		return;
	}	
	
	public void removerContato(Contato c) throws ClassNotFoundException, SQLException{
		ContatoDao cd = new ContatoDao();
				   cd.removerContato(c.getId());
		return;
	}
	
	public String salvarAlteracao(Contato c) throws ClassNotFoundException, SQLException{
		ContatoDao cd = new ContatoDao();
		   		   cd.alterarContato(c.getNome(),
		   				   			 c.getTelefoneFixo(),
		   				   			 c.getTelefoneCelular());
		
		for (Contato contato : contatoLista) {
			c.isEditavel(false);
		}

		return null;

	}

	public String editarContato(Contato c) {		
		//getContato().isEditavel(true);
		c.isEditavel(true);
		return null;
		
	}

}

Contato

package contato;

public class Contato {
	
	private int id;
	private String nome;
	private String telefoneFixo;
	private String telefoneCelular;
	private boolean editavel = false;
	
	public Contato(){}
	
	public Contato(int id, String nome){
		this.id = id;
		this.nome = nome;
	}
	
	public Contato(String nome){
		this.nome = nome;
	}
	 
	public boolean isEditavel() {
		return editavel;
	}
	
	public void isEditavel(boolean editavel) {
		this.editavel = editavel;
	}	
	public String getTelefoneFixo() {
		return telefoneFixo;
	}

	public void setTelefoneFixo(String telefoneFixo) {
		this.telefoneFixo = telefoneFixo;
	}

	public String getTelefoneCelular() {
		return telefoneCelular;
	}

	public void setTelefoneCelular(String telefoneCelular) {
		this.telefoneCelular = telefoneCelular;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
}

Algum santo? Ainda não encontrei a solução…