primeFaces password não dá feedback [RESOLVIDO]

Bom dia,

pessoa a ajuda de quem já passou por isso, para tentar resolver o problema do p:password do primefaces que exibe o balão do feedback mas não dá o feedback.

segue o código que apresenta o problema:

                <p:password id="txtSenha" value="#{cadastroDePessoaBean.pessoaFisica.senha}" minLength="4" promptLabel="Digite uma senha segura" goodLabel="Boa" weakLabel="Razoável" strongLabel="Excelente" feedback="true" required="true" binding="#{cadastroDePessoaBean.passwordInput}">
                    <p:watermark for="txtSenha" value="Digite sua senha" />
                </p:password>

Segue todo o código da página:

        <p:growl id="cadastro"/>
        <p:panel id="pnlDadosPessoais" header="Dados Pessoais" >
            <h:panelGrid columns="2" cellpadding="2" >
                <h:panelGrid columns="2" cellpadding="2" >
                    <p:graphicImage id="gpiFoto" value="#{cadastroDePessoaBean.stcImagem}" width="125" height="150" cache="false"/>
                    <h:panelGrid columns="1" cellpadding="1">
                        <p:fileUpload id="fluFotos" auto="true" image="//resources//images//upload.gif" 
                                      width="16" height="16" allowTypes="*.gif; *.png; *.jpg" description="imagem" 
                                      fileUploadListener="#{cadastroDePessoaBean.fileUploadAction}" update="gpiFoto" 
                                      customUI="true" wmode="false" widgetVar="uploader" sizeLimit="204800" />
                        <h:commandLink id="cmdLimparFoto" actionListener="#{cadastroDePessoaBean.limparFoto}" >
                            <h:graphicImage id="gpiLimparFoto" value="//resources//images//limpar.gif" width="10" height="10" />
                            <f:ajax render="gpiFoto" />
                        </h:commandLink>
                    </h:panelGrid>
                </h:panelGrid>
                <h:panelGrid columns="3" cellpadding="3">
                    <h:outputLabel value="Nome" for="txtNome"/>
                    <p:inputText id="txtNome" value="#{cadastroDePessoaBean.pessoaFisica.nome}" maxlength="255" required="true" size="80">
                        <p:watermark for="txtNome" value="Digite seu nome completo" />
                    </p:inputText>
                    <p:message id="msgNome" for="txtNome"/>
                    <h:outputLabel value="Data de Nascimento" for="txtDataDeNascimento" />
                    <p:calendar id="txtDataDeNascimento" value="#{cadastroDePessoaBean.pessoaFisica.dataDeNascimento}" required="true" locale="pt_BR" timeZone="America/Sao_Paulo" pattern="dd/MM/yyyy"/>
                    <p:message id="msgDataDeNascimento" for="txtDataDeNascimento" />
                    <h:outputLabel value="Sexo" for="optSexo" />
                    <h:selectOneRadio id="optSexo" value="#{cadastroDePessoaBean.pessoaFisica.sexo}">
                        <f:selectItems value="#{cadastroDePessoaBean.sexos}" var="sexo" itemLabel="#{sexo.toString()}" itemValue="#{sexo.get()}"/>
                    </h:selectOneRadio>
                    <p:message for="optSexo" />
                    <h:outputLabel value="CPF" for="txtCpf" />
                    <p:inputMask id="txtCpf" value="#{cadastroDePessoaBean.cpf}" validator="cpfValidator" converter="cpfConverter" mask="999.999.999-99">
                        <p:watermark for="txtCpf" value="CPF - Apenas números" />
                    </p:inputMask>
                    <p:message for="txtCpf" />
                </h:panelGrid>
            </h:panelGrid>
        </p:panel>
        <p:panel id="pnlEndereco" header="Endereço" >
            <h:panelGrid columns="3" cellpadding="3">
                <h:outputLabel value="Código Postal: " />
                <p:inputMask id="txtCep" value="#{cadastroDePessoaBean.cep}" mask="99999-999" size="10">
                    <p:ajax event="blur" listener="#{cadastroDePessoaBean.atualizaLogradouro}" update="pnlEndereco" />
                </p:inputMask>
                <p:message for="txtCep" />
                <h:outputLabel value="Logradouro" for="txtLogradouro"/>
                <p:inputText id="txtLogradouro" value="#{cadastroDePessoaBean.logradouro.nome}" size="80" />
                <p:message for="txtLogradouro" />
                <h:outputLabel value="Número" for="txtNumero" />
                <p:inputText id="txtNumero" value="#{cadastroDePessoaBean.endereco.numero}"/>
                <p:message for="txtNumero" />
                <h:outputLabel value="Complemento" for="txtComplemento" />
                <p:inputTextarea id="txtComplemento" value="#{cadastroDePessoaBean.endereco.complemento}" cols="80" rows="5"/>
                <p:message for="txtComplemento" />
                <h:outputLabel value="Bairro" for="txtBairro" />
                <p:inputText id="txtBairro" value="#{cadastroDePessoaBean.logradouro.bairro.nome}" readonly="true" size="80"/>
                <p:message for="txtBairro" />
                <h:outputLabel value="Cidade" for="txtCidade" />
                <p:inputText id="txtCidade" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.nome}" readonly="true" size="80"/>
                <p:message for="txtCidade" />
                <h:outputLabel value="Unidade Federativa" for="txtUF" />
                <p:inputText id="txtUF" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.unidadeFederativa.nome}" readonly="true" size="80"/>
                <p:message for="txtUF" />
                <h:outputLabel value="País" for="txtPais" />
                <p:inputText id="txtPais" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.unidadeFederativa.pais.nome}" readonly="true" size="80"/>
                <p:message for="txtPais" />
            </h:panelGrid>
        </p:panel>
        <p:panel id="pnlSenha" header="Segurança" >
            <h:panelGrid columns="3" cellpadding="3" >
                <h:outputLabel value="Senha" for="txtSenha"/>
                <p:password id="txtSenha" value="#{cadastroDePessoaBean.pessoaFisica.senha}" minLength="4" promptLabel="Digite uma senha segura" goodLabel="Boa" weakLabel="Razoável" strongLabel="Excelente" feedback="true" required="true" binding="#{cadastroDePessoaBean.passwordInput}">
                    <p:watermark for="txtSenha" value="Digite sua senha" />
                </p:password>
                <p:message for="txtSenha" />
                <h:outputLabel value="Confirma Senha" for="txtConfirmaSenha" />
                <p:password id="txtConfirmaSenha" value="#{cadastroDePessoaBean.confirmaPassword}" minLength="0" feedback="false" required="true" validator="#{cadastroDePessoaBean.validateSenha}">
                    <p:watermark for="txtConfirmaSenha" value="Confirme sua senha" />
                </p:password>
                <p:message id="msgConfirmaPassword" for="txtConfirmaSenha" />
            </h:panelGrid>
        </p:panel>
        <p:panel id="pnlEmail" header="Correio Eletrônico" >
            <h:panelGrid columns="3" cellpadding="3" >
                <h:outputLabel value="E-mail" for="txtEmail"/>
                <p:inputText id="txtEmail" value="#{cadastroDePessoaBean.strEmail}" required="true" binding="#{cadastroDePessoaBean.emailInput}">
                    <p:watermark for="txtEmail" value="Digite seu email" />
                </p:inputText>
                <p:message for="txtEmail" />
                <h:outputLabel value="Confirma E-mail" for="txtConfirmaEmail"/>
                <p:inputText id="txtConfirmaEmail" value="#{cadastroDePessoaBean.confirmaEmail}" required="true" validator="#{cadastroDePessoaBean.validateEmail}">
                    <p:watermark for="txtConfirmaEmail" value="Confirme seu email" />
                </p:inputText>
                <p:message id="msgEmail" for="txtEmail" />
            </h:panelGrid>
        </p:panel>
        <p:panel id="pnlContrato" header="Contrato">
            <center>
                <p:inputTextarea id="txtContrato" value="#{cadastroDePessoaBean.contrato.texto}" cols="100" rows="30" readonly="true" />
            </center>
        </p:panel>
        <h:commandLink id="cmdProximo" action="#{cadastroDePessoaBean.confirmar}">
            <h:graphicImage id="gpiProximo" value="//resources//images//limpar.gif" width="10" height="10" />
        </h:commandLink>

Desde já agradeço.

Percebi que retirando o bloco de código relativo a endereço, o feedback acontece. Por que será?

Retirando este bloco abaixo:

                <h:outputLabel value="Código Postal: " />
                <p:inputMask id="txtCep" value="#{cadastroDePessoaBean.cep}" mask="99999-999" size="10">
                    <p:ajax event="blur" listener="#{cadastroDePessoaBean.atualizaLogradouro}" update="pnlEndereco" />
                </p:inputMask>
                <p:message for="txtCep" />
                <h:outputLabel value="Logradouro" for="txtLogradouro" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:outputText id="txtLogradouro" value="#{cadastroDePessoaBean.logradouro.nome}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:message for="txtLogradouro" />
                <h:outputLabel value="Número" for="txtNumero" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <p:inputText id="txtNumero" value="#{cadastroDePessoaBean.endereco.numero}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <p:message for="txtNumero" />
                <h:outputLabel value="Complemento" for="txtComplemento" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <p:inputTextarea id="txtComplemento" value="#{cadastroDePessoaBean.endereco.complemento}" cols="80" rows="5" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <p:message for="txtComplemento" />
                <h:outputLabel value="Bairro" for="txtBairro" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:outputText id="txtBairro" value="#{cadastroDePessoaBean.logradouro.bairro.nome}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:message for="txtBairro" />
                <h:outputLabel value="Cidade" for="txtCidade" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:outputText id="txtCidade" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.nome}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:message for="txtCidade" />
                <h:outputLabel value="Unidade Federativa" for="txtUF" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:outputText id="txtUF" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.unidadeFederativa.nome}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:message for="txtUF" />
                <h:outputLabel value="País" for="txtPais" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:outputText id="txtPais" value="#{cadastroDePessoaBean.logradouro.bairro.cidade.unidadeFederativa.pais.nome}" rendered="#{cadastroDePessoaBean.renderizarLogradouro}"/>
                <h:message for="txtPais" />

Bom dia,

Fiquei quebrando cabeça ontem a noite e consegui solucionar o problema apenas retirando o <p:watermark for=“txtSenha” value=“Digite sua senha” /> .

O bloco relacionado a senha ficou assim então:

                    &lt;h:outputLabel value="Senha" for="txtSenha"/&gt;
                    &lt;p:password id="txtSenha" value="#{cadastroDePessoaBean.pessoaFisica.senha}" minLength="4" promptLabel="Digite uma senha segura" goodLabel="Boa" weakLabel="Razoável" strongLabel="Excelente" feedback="true" required="true" binding="#{cadastroDePessoaBean.passwordInput}"/&gt;
                    &lt;p:message for="txtSenha" /&gt;

Não sei o porque, devido a estar funcionando com o watermark em várias ocasiões. Mas fica ai, se alguém tiver um problema parecido com o meu, tente tirar o watermark o password.

Valeu.

Olá jrfercar,

Vendo que já trabalho com passoword do primefaces, gostaria de saber se conseguiu pegar o feedback do campo, para permitir o usuário entrar com senha ao qual tenha recebido um status de good!

Grato pela atenção

Olá boa tarde,

pelo que entendi, você deseja estabelecer um nível mínimo de qualidade para a senha.

se for assim, você pode fazer uso do parâmetro level do p:password.

este parâmetro level pode receber 1,2 ou 3, dependendo da complexidade da senha exigida.

Isso mesmo, e compreendi sua ideia.
Valeu.