2013-01-15 49 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