1

我试图了解 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's 的值最初设置为(静态)value属性:value="#{cc.attrs.value}",然后<f:attribute>标记将某些内容设置为从“字段”bean 检索到的“动态”值。

这是怎么回事?“动态”值是否会覆盖静态值?总是?

4

1 回答 1

4

如您所料,这确实与以下内容完全相同:

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

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

于 2013-08-14T12:53:14.410 回答