Erro ao criar managed bean

4 respostas
emanuelmm

Pessoal, estamos fazendo uns testes aqui com JSF na empresa (peguei o exemplo no Blog do Urubatan), pra avaliar se vale a pena comecar um novo projeto com ele, porém estou com um problema que é o seguinte:

no faces-config.xml estou tentando configurar um managed-bean abaixo:

<managed-bean>

<managed-bean-name>login</managed-bean-name>

<managed-bean-class>br.com.emanuel.jsfjpasec.Login</managed-bean-class>

<managed-bean-scope>session</managed-bean-scope>

</managed-bean>

<managed-bean>

<managed-bean-name>mdata</managed-bean-name>

<managed-bean-class>br.com.emanuel.jsfjpasec.SomeData</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope>

<managed-property>

<property-name>loginOk</property-name>

<property-class>java.lang.Boolean</property-class>

<value>#{login.loginOk}</value>

</managed-property>

</managed-bean>

o tomcat apresenta o seguinte erro:

11/03/2010 10:07:26 com.sun.faces.mgbean.BeanManager preProcessBean
SEVERE: JSF will be unable to create managed bean mdata when it is requested. The following problems where found:
- The property loginOk for managed bean mdata is defined with a property class of java.lang.Boolean, however, this class is not assignable to the property.

Veja que na classe Login.java eu tenho o atributo loginOk declarado:

package br.com.emanuel.jsfjpasec;

public class Login {

[size=18]	private boolean loginOk;[/size]

private String userName;

private String password;

public boolean isLoginOk() {

return loginOk;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String validateLogin(){

if(userName!=null && password!=null && !userName.equalsIgnoreCase(password)){

loginOk = true;

return secpage;

}else return login;

}

}

Alguem tem alguma sugestao?

4 Respostas

rogelgarcia

Já que voce está fazendo testes…

experimenta esse aqui também

http://www.nextframework.org

É bem fácil e rápido… então nao custa tentar… tem tutoriais em video…

Sobre o seu problema… não foi possivel utilizar #{login.loginOk} na propriedade do tipo boolean… acho que não rola de usar uma expression nesse local… num faz muito sentido mesmo nao porque… imagine se o login.loginOk… troque de valor…
Me parece que a’te em versoes mais novas voce poderia fazer algo desse tipo… veja se a versao que está utilizando é a mesma
Pelo que vejo por aí é mais interessante utilizar o JSF com o JBoss Seam, o Seam resolve uma série de problemas do JSF…

Os experts em JSF podem opinar melhor

emanuelmm

Verdade, pode ser algum pró de versao…

o post é bem antigo inclusive:
http://www.urubatan.com.br/implementando-login-com-jsf-exemplo-simples/comment-page-1/#comments

Ah: Vou dar uma olhada na sua solucao sim! Obrigado!

jidlafe

Altere o tipo primitivo, para o tipo "wrapper"
correspondente. Teste novamente e verifique.

import java.lang.Boolean;

private Boolean loginOk;
...
emanuelmm

Eu tinha feito esse teste ai … Mas nao faz diferenca, acho que ele utiliza-se das propriedades de Autoboxing e auto-unboxing do java.

To comecando a achar que esse problema está ligada a versao do JSF. O post é de 2007. :frowning:

Criado 11 de março de 2010
Ultima resposta 11 de mar. de 2010
Respostas 4
Participantes 3