JSFとマネージドBeanを使用する簡単なアプリケーションを作成しました。マネージドBeanから、データベースにデータを格納するSpringBeanをインスタンス化しようとしています。ただし、nullPointerExcpetionを取得したため、「@Autowired」アノテーションが機能しないようです。SpringでJSFとマネージドBeanを使用する方法に関連するすべてのトピックを読みましたが、問題を解決できませんでした。誰かが次のコードを見てヒントを教えてくれるかもしれません。
########## ManagedBean #########
@成分
@Scope( "request")
@Qualifier( "memberBean")
パブリッククラスProjectEntityHandlerBean
{{
プライベートリストprojectList;
@Autowired
プライベートProjectBeanLocalprojectBean;
public ProjectEntityHandlerBean()
{{
}
public List getProjectList(){
projectListを返します。
}
public String getAllProjects()
{{
projectList = projectBean.getAllProjects();
「true」を返します。
}
サービスビーン
@サービス
パブリッククラスProjectBeanはProjectBeanLocalを実装します{
@PersistenceContext
プライベートEntityManagerem;
/ **
*デフォルトのコンストラクタ。
* /
public ProjectBean(){
//TODO自動生成されたコンストラクタスタブ
}
@Transactional
パブリックリストgetAllProjects()
{{
System.out.println( "ProjectBeanが呼び出されました");
クエリquery=em.createQuery( "SELECT p FROM Project p");
@SuppressWarnings( "unchecked")
プロジェクトの一覧表示=query.getResultList();
プロジェクトを返す。
}
faces.config.xml
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
<managed-bean>
<managed-bean-name>loginBean</managed-bean-name>
<managed-bean-class>com.example.controller.LoginBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>ProjectEntityHandlerBean</managed-bean-name>
<managed-bean-class>com.example.controller.ProjectEntityHandlerBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>