我一直在玩弄JSF 2.0複合組件,但是我對composite:attribute
標籤中的require屬性的含義有些困惑。該文檔表明,如果頁面作者必須爲此屬性提供值,則必需的屬性爲true。複合組件需要的屬性在Mojarra 2.0.3中拋出異常
我將它解釋爲必須爲所有具有required=true
的composite:屬性提供值。我還假定一個空字符串是一個有效的值。這就是它在Mojarra 2.0.2中的工作原理。
使用這個簡單的託管bean:
@ManagedBean(name = "simpleMB")
@ViewScoped
public class SimpleManagedBean implements Serializable {
private static final long serialVersionUID = -1;
private String whatever;
... setter and getter
}
和複合組件:
<composite:interface>
<composite:attribute name="value" required="true" />
</composite:interface>
<composite:implementation>
<h:outputText value="Value: '#{cc.attrs.value}'" />
</composite:implementation>
這些標籤在鑽嘴魚科2.0.2工作:
<foo:bar value="" />
<foo:bar value="#{simpleMB.whatever}" />
然而,當我升級到2.0.3,只有第一個標籤起作用。第二個標記導致此錯誤消息:
/requiredAttribute.xhtml @20,42 <foo:bar> The following attribute(s) are
required, but no values have been supplied for them: value.
它工作正常,當我設置需要假。
我誤解了所需屬性的含義嗎?有人能澄清我應該期待什麼行爲嗎?
謝謝。
嗨,我剛碰到這個相同的問題。與Mojarra 2.0.3一起出現。感覺像一個錯誤? – 2010-11-19 10:57:18