0

Beanのサブプロパティに値を注入できるかどうかをお聞きしたいと思います。

これは私がやりたいことですが、EclipseIDEは次のように文句を言います。

BeanプロパティbeanB.subpropが親クラスpaq.paq.BeanAに見つかりません

<managed-bean>
    <managed-bean-name>beanA</managed-bean-name>
    <managed-bean-class>paq.paq.BeanA</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>beanB.subprop</property-name>
            <value>Hello!</value>
        </managed-property>        
</managed-bean>



public class BeanA implements Serializable {

    public BeanB beanB = null;      

    public Skin getBeanB() {
        if (this.beanB == null) {
            this.beanB = new BeanB();
        }
        return this.beanB;
    }       

    public void setBeanB(BeanB beanB) {     
        this.beanB = beanB;
    }

}


public class BeanB implements Serializable {

    public String subprop = null;       

    public String getSubprop() {
        return this.subprop;
    }       

    public void setSubprop(String subprop) {        
        this.subprop = subprop;
    }

}   

ありがとう!

4

1 に答える 1

0

ネストされたすべてのBeanは、マネージドBeanとしても宣言する必要があります。代わりに、ネストされたBeanに注入してから、ネストされたBean自体をメインBeanに注入する必要があります。

<managed-bean>
    <managed-bean-name>beanA</managed-bean-name>
    <managed-bean-class>paq.paq.BeanA</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
        <property-name>beanB</property-name>
        <value>#{beanB}</value>
    </managed-property>        
</managed-bean>
<managed-bean>
    <managed-bean-name>beanB</managed-bean-name>
    <managed-bean-class>paq.paq.BeanB</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
        <property-name>subprop</property-name>
        <value>Hello!</value>
    </managed-property>        
</managed-bean>
于 2012-06-28T13:17:33.847 に答える