[RESOLVIDO] JSF 2.0 + Inject @Model

Prezados, não sei se me engano, mas essa anotação @Model faz a injeção do ManagedBean para ser usado no JSF sem a necessidade de declarar o Bean no faces-config ???

Não sei se entendi errado o propósito da anotação, mas fiz isso com meu Bean:

@Model
public class LoginBean {...}

e a chamei em minha página de Login da seguinte forma:

<h:panelGroup rendered="#{sessao.usuarioLogado == null}">
            <p:panel closable="true">
                <h:form id="frmLogin">
                    <h:outputText value="Login: "/> <h:inputText id="login" value="#{loginBean.login}"/><br/>
                    <h:outputText value="Senha: "/> <p:password id="senha" value="#{loginBean.senha}" minLength="6" maxlength="8"/><br/>
                    <p:commandButton id="btnLogin" value="Login" action="#{loginBean.login}"/>
                </h:form>
            </p:panel>
        </h:panelGroup>

Pois bem, no momento que clico no botão Login, tomo uma PropertyNotFoundException no meio da fuça e diz que a minha propriedade loginBean está com o valor null… Tem mais algum lugar que eu deva configurar esse bean pra funcionar ?? Estou esquecendo de algo ??

Abs []

Na verdade a anotação correta é @Named. A anotação @Model tem outra semântica. E p/ funcionar vc deve usar @Named em conjunção com @RequestScoped, @SessionScoped, @ApplicationScoped ou @ConversationScoped. Além disso, p/ q essas anotações funcionem é preciso q exista um arquivo beans.xml dentro do diretório WEB-INF do seu projeto. Se vc estiver usando o Netbeans, a IDE já tem um template p/ isso em WEB-INF>Other>Context and Dependency Injection>beans.xml. Mas vc tb pode apenas marcar o checkbox Enable Contexts and Dependency Injection quando estiver criando o seu projeto.

Fala cara… o arquivo beans.xml confere no web-inf do Projeto, porém não tem nada setado nele…

Estou fazendo de acordo com o exemplo da JavaMagazine, da aplicação completa, esse Bean está anotado com @Model

bom… vou continuar pesquisando…

Valew pelo Help, se mais alguém possuir alguma informação, fico no aguardo…

Abs []

Kra o beans.xml criado pelo Netbeans ñ é vazio então eu ñ sei dizer se isso faz diferênça mas acho q vale a pena tentar. Eu tb já ouvi muito falar sobre esses exemplos usando a anotação @Model p/ injetar ManagedBeans do JSF. A anotação @Model representa um objeto no papel de modelo em uma aplicação MVC e como vc deve bem saber os ManagedBeans fazem o papel de controller e ñ de @Model. Basta procurar os exemplos da JBoss (q foi quem consebeu a idéia e a implementação de referência, Weld) p/ ver q eles ñ usam @Model p/ controllers.

Cara… olhei no Projeto errado… o beans.xml de fato não existe…
basta criá-lo no web-inf ou tenho que setar algo nele ??? o do artigo não tem nada setado…

Valew :wink:

funcionou, bastou colocar o beans.xml no WEB-INF mesmo… Agora deu outro erro, mas a bronca já é outra… Valew cara por me dar esse Help…