[RESOLVIDO]Problema com binding de inputText do Primefaces

Boa tarde galera!

Pessoal,

estou iniciando no desenvolvimento web faz pouco tempo e já estou tendo algumas dificuldades com relação ao mesmo,

Estou criando uma telinha básica de login, mas estou com problemas eu realizar o binding de um componente de inputText do primefaces no bean.

Abaixo segue uma parte da exeption que está sendo gerada:

java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.component.UIComponent at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1912) at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1132) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:497) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:157) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)

Essa é minha view:

[code]

<f:view contentType="text/html">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="CSS/layout.css"/>
        <title>Controle de Apontamento de Horas no JIRA</title>
    </h:head>
    <h:body>
        <h:form id="telaLogin">
            <p:panel header="Bem Vindo!">
                <p:messages id="messages" showDetail="true" autoUpdate="true"/>  
                <h:panelGrid columns="2" id="loginGrid">                     
                    <h:outputLabel for="it1" value="Login:*" />  
                    <p:inputText id="it1" label="Login" binding="#{loginMB.login}" required="true"/>  
                    <h:outputLabel for="pwd1" value="Senha:*" />  
                    <p:password id="pwd1" label="Senha" binding="#{loginMB.senha}" required="true"/>  
                </h:panelGrid>  
                <p:commandButton id="botaoSalvar"  value="Entrar" style="font-size: 14px"/> 
            </p:panel>
        </h:form>
    </h:body>
</f:view>
[/code]

E respectivamente meu bean:

[code]@ManagedBean
@SessionScoped
public class LoginMB {

Session session;

public LoginMB() {
    this.session = HibernateUtil.getSessionFactory().getCurrentSession();
}

private String login;
private String senha;
private boolean logado;

public Session getSession() {
    return session;
}

public void setSession(Session session) {
    this.session = session;
}

public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public boolean isLogado() {
    return logado;
}[/code]

Deve estar alguma falha da minha parte bem basica, mas eu nao estou conseguindo enxergar o problema.

Obriagado a todos pela força!

Abrass…

Eu acho que tens que usar a propriedade value, ao invés de binding

<p:inputText id="it1" label="Login" value="#{loginMB.login}" required="true"/>  

asandrob,

até deu certo, mas o componente de inputText de login está vindo preenchido com este valor:

org.primefaces.component.inputtext.InputText@65a0c382

E qual a diferença de fazer o bindig do componente e value?

Quando eu estava respondendo a tua pergunta, também me ocorreu essa dúvida, pois não uso JSF com frequencia.
Dai dei uma pesquisada aqui mesmo no GUJ e achei umas explicações bem boas…
Uma delas é essa:
http://www.guj.com.br/java/34047-jsf-value-ou-binding-
Com o binding dá pra alterar o comportamento do componente, já o value só o valor…

Bacana, asandrob!

Dei uma pesquisada e tbm achei artigos bem esclarecedores. Mas ainda estou encafifado pelo motivo de meu inputText carregar este valor:

org.primefaces.component.inputtext.InputText@65a0c382

Obrigado pela força.

Voce tem que usar um objeto da mesma classe do component. um primefaces.InputText no caso. não uma String.
O value voce aponta para o atributo login ou senha.

troque o binding por value que já irá resolver, ou veja no proprio site do primefaces. nada melhor que o showcase deles para aprender.

Entendi Ricardo.

Realmente o showcase deles é fera!

Obrigado pela força. Vou tentar me coçar aqui para aprender.

Um abraço…