Erro JSF "EL expression does not evaluate "

[b]Ola Pessoal,

Estou com uma duvida neste projeto, que contem dois Manage Bean que se referencian a uma classe Contato do padrao java beans, e o outro manage bean do ContatoDao, o problema acontece na propriedade do botao inserir contato, que reclama a seguinte mensagem: EL expression does not evaluate to expected types for this attribute[u] [/b]

[i][b]gostaria de saber o por que?, e o passo para solução.

Desde já agradeço.

Segue-se o codigo fonte abaixo:

Abraço. [/b][/i]

Contato.jsp

[code]<h:form >

Cadastro de Contatos


   		<tr>
   			<td><h:outputLabel value="ID:" /></td>
   			<td><h:inputText value="#{contato.id}"/></td>
   		</tr>
   		<tr>
   			<td><h:outputLabel value="Nome:"/></td>
   			<td><h:inputText value="#{contato.nome}"/></td>
   		</tr>
   		<tr>
   			<td><h:outputLabel value="Endereço:"/></td>
   			<td><h:inputText value="#{contato.endereco}"/></td>
   		</tr>
   		<tr>
   			<td><h:outputLabel value="Telefone:"/></td>
   			<td><h:inputText value="#{contato.telefone}"/></td>
   		</tr>
   		
   </table>
   <table align="center">
   		<tr>
   			<td><h:commandButton value="Novo" type="reset"/></td>
   			<td><h:commandButton value="Inserir" action="#{contatoDao.inserir}"/></td>
   			<td><h:commandButton value="Consultar"/></td>
   			<td><h:commandButton value="Alterar"/></td>
   			<td><h:commandButton value="Excluir"/></td>
   		</tr>
   </table>
   	
   
   </h:form >[/code]

Contato.java

  [code]  private long id;
private String nome;
private String endereco;
private String telefone;

    // getters and setters[/code]

ContatoDao.java

[code]@Override
public String inserir(Contato contato) {
// TODO Auto-generated method stub
Connection con = null;
String resp = null;
String sql = null;
PreparedStatement pstm = null;

	try {

		con = ConnectionFactory.getConnection();

		sql = "insert into contato(nome, endereco, telefone)values(?,?,?)";

		pstm = con.prepareStatement(sql);
		pstm.setString(1, contato.getNome());
		pstm.setString(2, contato.getEndereco());
		pstm.setString(3, contato.getTelefone());

		pstm.executeUpdate();

		resp = "Sucesso";

		return resp;

	} catch (SQLException e) {
		// TODO Auto-generated catch block
		resp = "Erro ao Inserir!";
		e.printStackTrace();
		return resp;
	} finally {
		try {
			pstm.close();
		} catch (Exception e) {
		}
		try {
			con.close();
		} catch (Exception e) {
		}
	}
}[/code]

Faces-Config

[code]


contatoDao

br.com.web.dao.ContatoDao

session



contato

br.com.web.modelo.Contato

request

[/code]

Olá tiagowmm,
Você está fazendo a implementação de forma errada.´Primeiro que não é aconselhavel você utilizar diretamente o DAO no Faces-config e você também não tem um objeto contato na sua classe DAO. Mas crie um objeto contato dentro do DAO e utilize ele, apenas para os testar.
Algo como:

               //Cria um objeto Contato para ser acessado pela JSP
               private Contato contato;
               //get e set


                @Override
	public String inserir() {
		// TODO Auto-generated method stub
		Connection con = null;
		String resp = null;
		String sql = null;
		PreparedStatement pstm = null;

		try {

			con = ConnectionFactory.getConnection();

			sql = "insert into contato(nome, endereco, telefone)values(?,?,?)";

			pstm = con.prepareStatement(sql);
			pstm.setString(1, contato.getNome());
			pstm.setString(2, contato.getEndereco());
			pstm.setString(3, contato.getTelefone());

			pstm.executeUpdate();

			resp = "Sucesso";

			return resp;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			resp = "Erro ao Inserir!";
			e.printStackTrace();
			return resp;
		} finally {
			try {
				pstm.close();
			} catch (Exception e) {
			}
			try {
				con.close();
			} catch (Exception e) {
			}
		}
	}

E na sua JSP:

            <tr>   
                <td><h:outputLabel value="ID:" /></td>   
                <td><h:inputText value="#{contatoDAO.contato.id}"/></td>   
            </tr>

[]´s

Daniel

valeu , vou testar.

[b]Ola Daniel fiz o que você me falou mas nao deu certo o erro ainda continua. Você comentou que este nao é a melhor forma de se implementar, como seria?

Obrigado.[/b]