2

別の質問でユーザーが以前に提案したように、別のBeanにBeanを注入する必要があります。

だから、私は次のことをします:

@ManagedBean
@RequestScoped
public class Articles {
    private String selectedMenu;

    @ManagedProperty(value="#{user}")
    private UserManager user;

    @PostConstruct
    public void init() {
        if(selectedMenu==null || selectedMenu.trim().isEmpty()) {
            this.selectedMenu="0";
        }
    }

    // now here i should access to user.methods

    // getter and setter
}

実際、UserManagerデータにアクセスできません。これらのエラーが発生します:

ブラウザ malformedXML: INVALID_STATE_ERR: Dom Exception 11

サーバーログ 30-nov-2010 15.36.58 javax.faces.component.UIViewRoot$ViewMap put AVVERTENZA: Setting non-serializable attribute value into ViewMap: (key: profileSelector, value class: model.ProfileSelector) 30-nov-2010 15.36.59 com.sun.faces.mgbean.BeanManager preProcessBean GRAVE: JSF will be unable to create managed bean articles when it is requested. The following problems where found: - Property user for managed bean articles does not exist. Check that appropriate getter and/or setter methods exist. 30-nov-2010 15.36.59 com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit GRAVE: com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean articles. The following problems were found: - Property user for managed bean articles does not exist. Check that appropriate getter and/or setter methods exist.

コメント@ManagedProperty(value="#{user}")してprivate UserManager user;もエラーは表示されません。それが問題です。私は何が間違っていますか?

乾杯

4

1 に答える 1

5

malformedXML:INVALID_STATE_ERR:Dom Exception 11

このXMLエラーは、Beanではなく、ビュー(XHTML)にエラーがあることを示しています。このエラーが発生した理由はわかりませんが、クライアント側のXMLツリーで誤った状態を引き起こしたプロパティにrendered依存するいくつかの属性を持つ非常に複雑なコンポーネントツリーがある可能性があります。user

サーバーログについて:

AVVERTENZA:シリアル化できない属性値をViewMapに設定します:(キー:profileSelector、値クラス:model.ProfileSelector

これは必ずしも害を及ぼすわけではありませんが、修正するには、クラスにを実装させる必要がありますjava.io.Serializable

public class ProfileSelector implements Serializable {}

このようにして、サーバーはインスタンスをネットワーク経由で転送したり、必要に応じて(サーバーが再起動したり、サーバークラスターに配置されたときに)メモリではなくハードディスクにインスタンスを保存したりできます。


2010年11月30日15.36.59com.sun.faces.mgbean.BeanManagerpreProcessBean GRAVE:JSFは、要求されたときにマネージドBeanアーティクルを作成できなくなります。次の問題が見つかりました。-マネージドBeanアーティクルのプロパティユーザーが存在しません。適切なgetterおよび/またはsetterメソッドが存在することを確認してください

これも自明です。user名前がの管理対象Beanのプロパティに適切なgetter/setterメソッドがあることを確認してくださいarticles

@ManagedBean
@RequestScoped
public class Articles {

    @ManagedProperty(value="#{user}")
    private UserManager user;

    public UserManager getUser() {
        return user;
    }

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

}

必要に応じて、IDEに自動生成させることができます。Eclipseで、右クリックのコンテキストメニュー(Alt + Shift + S)で[ソース]セクションを確認します。


2010年11月30日15.36.59com.sun.faces.context.PartialViewContextImpl$ PhaseAwareVisitCallback訪問GRAVE:com.sun.faces.mgbean.ManagedBeanCreationException:マネージドBeanアーティクルを作成できません。次の問題が見つかりました。-管理対象Bean記事のプロパティユーザーが存在しません。適切なgetterおよび/またはsetterメソッドが存在することを確認してください

これには同じ問題の原因があります。

于 2010-11-30T14:48:15.183 に答える