問題

JSF 2.0では、

@ ManagedProperty

アノテーションを使用して別のBeanのフィールドにBeanをDIしながら、

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    @ManagedProperty(value="#{message}")
    private MessageBean messageBean;

  • MessageBean.java **

@ManagedBean(name="message")
@SessionScoped
public class MessageBean implements Serializable {

次のエラーメッセージが表示されます。

  • An Error Occurred:**

    Unable to create managed bean helloBean. The following problems were
    found: – Property messageBean for managed bean helloBean does not exist.
    Check that appropriate getter and/or setter methods exist.

解決策

“helloBean”のフィールドに “messageBean”を挿入するには、

messageBeanセッターメソッドがsupply

でなければなりません。

  • HelloBean.java **

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    @ManagedProperty(value="#{message}")
    private MessageBean messageBean;

    public void setMessageBean(MessageBean messageBean) {
        this.messageBean = messageBean;
    }

完了したら、エラーメッセージは消されるはずです。