什么是f:在这个例子中使用的属性?

时间:2013-08-14 12:36:50

标签: jsf jsf-2

我正在尝试了解JSF代码段的作用。它就是这样的

<composite:interface>
    <composite:attribute name="field" />
    <composite:attribute name="value" default=""/>
    [...]
</composite:interface>
<composite:implementation>
     <ui:fragment rendered="some_logic_here">
         <h:outputText value="#{cc.attrs.value}">
             <f:attribute name="value" value="#{cc.attrs.field.value}"/>
         </h:outputText>
     </ui:fragment>
</composite:implementation>

field属性是指bean成员,其getValue() / setValue()个访问者(对于字符串)。 value属性是来自其他地方的字符串。

根据我的理解,output的值最初设置为(静态)value属性:value="#{cc.attrs.value}",然后<f:attribute>标记设置 到“field”bean检索到的“dynamic”值。

这是如何解决的? “动态”值是否会覆盖静态值?总是?

1 个答案:

答案 0 :(得分:3)

正如您所猜测的,这确实与以下内容完全相同:

<h:outputText value="#{cc.attrs.field.value}" />

换句话说,最初的开发人员并没有很好地考虑它,或者是在它开始像魔术一样工作,或者可能是喝咖啡,或者在开发过程中吸食了一些不好的东西。