3

@ApplicationScopedマネージドBeanを自分のコピーに置き換えるにはどうすればよいFacesContextですか?私が持っているのはFacesContext(私はJSFUnitの中にいます)のインスタンスだけです。

4

1 に答える 1

4

アプリケーションスコープのBeanは、管理対象Bean名をキーとしてアプリケーションマップに格納されます。

したがって、これは次のことを行う必要があります。

FacesContext.getCurrentInstance().getExternalContext()
    .getApplicationMap().put("managedBeanName", new Bean());

ちなみに、JSFの詳細はサーブレットAPIまでカバーしており、アプリケーションマップは単なるServletContext属性のマッピングです。ServletContextあなたが自分の手にしか持っていないことがいつ起こるかを知るのに役立ちます。また、同じ行で、セッションマップHttpSession属性にマップされ、リクエストマップHttpServletRequest属性にマップされます。それらをそれぞれセッションおよびリクエストスコープのBeanに使用します。

于 2011-03-02T21:26:07.170 に答える