У меня есть таблица данных, которая проходит по списку и имеет столбец значений, который выглядит следующим образом:
<h:dataTable var="assessmentFieldValue" value="#{assessmentBean.assessmentFieldValues}">
...
<ui:fragment rendered="#{assessmentFieldValue.field.type eq 'TEXT'}">
<h:inputText value="#{assessmentFieldValue.value}" />
</ui:fragment>
<ui:fragment rendered="#{assessmentFieldValue.field.type eq 'SLIDER'}">
<component:slider value="#{assessmentFieldValue.value}" />
</ui:fragment>
...
</h:dataTable>
Так что иногда я получаю стандартный inputText, иногда я получаю свой составной компонент слайдера:
<composite:interface>
<composite:attribute name="value" />
</composite:interface>
<composite:implementation>
<script type="text/ecmascript">
function updateValue(value) {
$('##{cc.id} span').each(function() {
$(this).text(value);
});
}
</script>
<div id="#{cc.id}">
<input id="sliderComponent" type="range" min="1" max="10"
value="#{cc.attrs.value}"
style="float: left"
onchange="javascript:updateValue(this.value);" />
<h:outputText id="fieldValue" value="#{cc.attrs.value}"
style="min-width: 20px; display: block; float: left" />
</div>
</composite:implementation>
Все это отображается так, как мне бы хотелось (развернуто на JBoss-AS7), но когда я нажимаю кнопку сохранения, связанную с датируемой таблицей, список AssessmentBean.assessmentFieldValue не отражает никаких изменений значений в компоненте слайдера.все же он делает для стандартного inputText.
Кто-нибудь может подсказать, почему изменения в слайдере не возвращают его обратно в бэк-компонент?Спасибо!