2013-01-15 78 views
1

幫我解決問題。Mojarra上覆合材料部件的ELE

我使用鑽嘴魚科2.1.16和Tomcat 7.

我有複合部件:

<composite:interface> 
    <composite:attribute name="value" default="#{modelsBean.allModels}" 
         type="java.util.List" /> 
</composite:interface> 

<composite:implementation> 
    <ui:repeat value="#{cc.attrs.value}" var="model" > 
     #{model.name} 
    </ui:repeat> 
</composite:implementation> 

如果使用它,那麼我有下一個錯誤:

javax.el.PropertyNotFoundException: /resources/panels/modelsView.xhtml 
#{model.name}: Property 'name' not found on type java.lang.String 

如果我變更

<ui:repeat value="#{cc.attrs.value}" var="model"> 

<ui:repeat value="#{modelsBean.allModels}" var="model"> 

然後一切正常。

如何解決呢?

回答

0

您不能指定值表達式作爲default值。在這裏看到更詳細的解釋:JSF composite component backing bean EL expression as default of required attribute failing, methods not known

+0

但是,正如你所看到的,屬性類型描述爲一個列表: <複合:屬性名稱=「值」 默認=「#{} modelsBean.allModels」 type =「java.util.List」/> 我有這個列表中的元素的問題。 – AnEi

+0

我認爲沒關係,'default'似乎只適用於字符串或基元的值。有關更多信息,請參閱上面鏈接的答案。只是不要使用'default'並設置你使用你的組件的地方。 '' – fischermatte

+0

感謝您的回覆,它確實幫助我 – AnEi