Я объявляю свой повторитель в форме (скажем, в main.xhtml):
<!--<itemRenderer:MetaFieldRenderer item="{kueditmeta.metaFieldFirst}" >
</itemRenderer:MetaFieldRenderer>-->
<ui:repeat var="foo" value="#{kueditmeta.metaFields}" >
<itemRenderer:MetaFieldRenderer item="#{foo}" >
</itemRenderer:MetaFieldRenderer>
</ui:repeat>
Моя форма при отправке проверяет мой составной компонент MetaFieldRenderer.xhtml в повторителе, я смотрю на атрибут: <cc:attribute name="item" />
путем вызова MetaFieldRenderer (). GetModel ();
В моем компоненте Backs FaceComponent я раскрываю метод getModel ():
public MetaFieldModel getModel() {
ELContext el = this.getFacesContext().getELContext();
ValueExpression valExp = this.getValueExpression("item");
Object itemValue = valExp.getValue(el);
return (MetaFieldModel) itemValue;
}
itemValue всегда равен нулю, когда я вкладываю MetaFieldRenderer в пользовательский интерфейс,Но если я раскомментирую то, что за пределами повторителя itemValue не равно нулю.
Кто-нибудь знает, что происходит?Есть ли лучший способ привязать и приписать мой FacesComponent?Мне не хватает необходимой реализации в моем компоненте, поэтому UIRepeat обновляет свои дочерние элементы?
(я использую JSF 2.0.3)