2013-12-10 6 views
14

私はJSF 2.2およびCDIとの問題を抱えているではnullに、私のmanagerbeanが解決されないと、このエラーが表示され目標到達不能、識別子解決はJSF 2.2

"値=" #{userBean.user.name} ":ターゲットに到達できません。識別子 'userBean'がnullに解決されました。

これは私のマネージャーBeanです。

@ManagedBean 
@RequestScoped 
public class UserBean implements Serializable { 
    private User user; 

    public void setUser(user) { 
     this.user = user; 
    } 
    ... 
} 

私の見解は次のとおりです。

<h:form id="login-form"> 
    <h:outputText value="User"/> 
    <h:inputText value="#{userBean.user.name}" id="username"/> 

    <h:outputText value="Senha"/> 
    <h:inputSecret value="#{userBean.user.password}" id="pasword"/> 

    <h:commandButton id="button" value="Login" action="#{userBean.login}"/> 

    <h:messages /> 
</h:form> 
+0

'faces-config.xml'はありますか? –

+2

アプリを実行しているアプリケーションサーバーから、それらの注釈をどのパッケージでインポートしていますか? – kolossus

+0

*完全にクリーンで再構築し、再デプロイメントを正しく実行したことを確認してください* ...これはBalusCの投稿から省略していたもので、問題を修正しました。 –

答えて

7

私はこの問題を解決しました。

私のJavaバージョンは1.6でしたが、CDIで1.7を使用していましたが、その後Javaバージョンを1.7に変更し、javax.faces.bean.ManagedBeanパッケージをインポートしてすべてが機能していました。私はこの例外に私の経験を共有したいPM77-1


8
  1. あなたはgetUser()メソッドを持っていることを確認してください

    @ManagedBean(name="userBean")

  2. を必要としています。

  3. setUser()のタイプは、voidである必要があります。

  4. Userクラスが適切なsettersgettersを持っていることを確認してください。

+1

デフォルトでは、Bean名はuserBeanになります。設定する必要はありません。 –

+0

@AlexandreLavoie - この事実を述べている公式文書を私に紹介してもらえますか? –

+0

http://docs.oracle.com/javaee/6/api/javax/faces/bean/ManagedBean.html第2段落 –

15

@

感謝。私のJSF 2.2アプリケーションはWildFly 8.0でも正常に動作しましたが、一度サーバーを起動すると、"対象到達不能"例外が発生しました。実際には、JSFアノテーションやタグに問題はありませんでした。

私がしなければならなかったことはプロジェクトをクリーニングすることでした。この操作の後、私のアプリはもう一度正常に動作しています。

私はこれが誰かを助けることを願っています!

+0

サーバ>クリーンで右クリックしても動作しませんでした。私はそれがうまくいけば私は夢中ですが、私はプロジェクト(サーバーではない)でクリックを再開しました。 – Ced

+2

WTF、クリーニングプロジェクト、私のために働いた、親指、偉大な –

+0

それは私に何度か起こった、時にはそれを解決し、時にはグラスフィッシュを再開したプロジェクトをクリーニングする – Fred

関連する問題