[RESOLVIDO]duvida com propiedade de beans

2 respostas
F

Olá pessoal, estou com um problema e não consigo descobrir como resolve-lo.
tenho um bean de login com o scope session e outro bean de consulta de escope view, após realizar o login quero utilizar o bean de consulta para fazer determinadas buscas do objeto(usuario) que esta logado na sessao, quando tento utiliza-lo ocorre o seguinte erro no glass fish:

GRAVE: O JSF estará indisponível para criar o bean gerenciado consultaController quando ele for solicitado. Os seguintes problemas foram encontrados:
- A propriedade loginController para o bean gerenciado consultaController não existe.
GRAVE: Error Rendering View[/usual.xhtml]
com.sun.faces.mgbean.ManagedBeanCreationException: Não foi possível criar o bean gerenciado consultaController. Os seguintes problemas foram encontrados:
- A propriedade loginController para o bean gerenciado consultaController não existe.

o segundo erro deve ser em decorrencia do primeiro ja que (usual.xhtml) é a pagina onde eu chamo o bean.

coloquei o seguinte codigo no faces-config (xml) :

<managed-bean>
    <managed-bean-name>loginController</managed-bean-name>
    <managed-bean-class>controller.LoginManagedBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
    <managed-bean-name>consultaController</managed-bean-name>
    <managed-bean-class>controller.ConsultaManagedBean</managed-bean-class>
    <managed-bean-scope>view</managed-bean-scope>
    <managed-property>
        <property-name>loginController</property-name>
        <value>#{loginController}</value>
    </managed-property>
</managed-bean>

no meu bean de consulta criei uma variavel do tipo do bean login e fiz o get e set dele,
meu bean de consulta ta assim:

public class ConsultaManagedBean {

private LoginManagedBean loginpessoa;

public ConsultaManagedBean() {
}

public LoginManagedBean getLoginpessoa() {
    return loginpessoa;
}

public void setLoginpessoa(LoginManagedBean loginpessoa) {
    this.loginpessoa = loginpessoa;
}

}

o netbeans ide permite o acesso de todos os campos do objeto na ora em que ecrevo o codigo (em negrito)
<h:outputText styleClass=“outputLabel” value="#{consultaController.loginpessoa.pessoa.nome}" style=“color: cornflowerblue ; text-transform: uppercase” /> 

porém quando executo a aplicaçao acontece o erro descrito acima, como posso resolve-lo? :frowning:

2 Respostas

D

Flávio … eu tive esse mesmo problema porém eu tive usando o EntityManger, não sei perfeitamente como vc ira resolver isso pois eu uso JSF 2 e faço as anotações direto no Código e não via faces-Config …
Mas de uma olhada nesse Link ele esta explicando o motivo de vc n conseguir fazer a mudança do escopo que se deve pela injeção de dependência que vc esta fazendo …

abraços …

http://www.guj.com.br/java/230564-meu-jpafilter-nao-funciona-com-viewscoped

B

Oh Wanderley…ops Flávio!

O que está acontecendo é que vc criou uma propriedade, private LoginManagedBean "loginPessoa" ... troque de "loginPessoa" para "loginController", como definido no faces-config.

Valews.

Criado 22 de agosto de 2011
Ultima resposta 22 de ago. de 2011
Respostas 2
Participantes 3