web-dev-qa-db-ja.com

ターゲット到達不能、JSF 2.2で識別子がnullに解決

JSF 2.2およびCDIに問題があり、managerbeanが解決されず、このエラーが表示されます

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

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

@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>
17
SaXeTz

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

私のJavaバージョンは1.6であり、CDIで1.7を使用していることがわかりましたが、その後、Javaバージョンを1.7に変更し、パッケージjavax.facesをインポートします.bean.ManagedBeanおよびすべてが機能しました。

ありがとう@ PM77-1


10
SaXeTz

この例外に関する私の経験を共有したいと思います。私のJSF 2.2アプリケーションはWildFly 8.0で正常に機能しましたが、サーバーを起動したときにこれを取得しました 「到達不能なターゲット」 例外。実際、JSFの注釈やタグには問題はありませんでした。

私がしなければならなかったことは プロジェクトの掃除。この操作の後、アプリは再び正常に動作します。

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

21
akelec
  1. あなたが必要

    @ManagedBean(name="userBean")

  2. getUser()メソッドがあることを確認してください。

  3. setUser()メソッドのタイプはvoidでなければなりません。

  4. Userクラスに適切なsettersおよびgettersも含まれていることを確認してください。

13
PM 77-1