Я делаю webapp в Seam, но столкнулся с проблемой, которую я не могу исправить.Величина формы не передается в Seam bean после a4j reRender
У меня есть форма JSF, где клиент может выбрать тип бронирования через выпадающий список. На основе выбранного значения отображаются другие компоненты формы.
Например: пользователь выбирает часы в качестве типа резервирования, панель панели отображается, когда клиент может выбрать начальный и конечный час. Но если клиент выбирает «часть дня» в качестве типа резервирования, выбирается selectOneMenu, где клиент может выбрать часть дня (утром, днем, вечером)
Реверсификация скважины, но значения компонентов с предоставленным условным значением не будет передаваться компоненту. Они остаются нулевыми значениями.
Это код, я говорю:
<s:div id="spot"
rendered="#{selectedProduct.productType.name eq 'Flex Spot'}">
<h:panelGrid columns="2">
<h:outputText value="Reservation Type" />
<h:selectOneMenu value="#{selectedPeriodPart}">
<s:selectItems
value="#{productManager.getAvailableDayPartsSpot()}"
var="daypart"
label="#{daypart.label}"></s:selectItems>
<s:convertEnum />
<a4j:support ajaxSingle="true"
event="onchange"
action="#"
reRender="spot">
</a4j:support>
</h:selectOneMenu>
<h:outputText id="date_spot" value="Date" />
<a4j:outputPanel id="calendar_spot" layout="block">
<rich:calendar value="#{reservation.reservationPeriod.startDate}"
locale="en" cellWidth="24px"
cellHeight="22px"
style="width:200px" />
</a4j:outputPanel>
<h:outputText rendered="#{selectedPeriodPart eq 'DAY_PART'}"
value="Daypart" />
<h:selectOneMenu value="#{selectedDaypart}"
rendered="#{selectedPeriodPart eq 'DAY_PART'}">
<f:selectItem id="si_morning" itemLabel="Morning (6:00 - 12:00)"
itemValue="morning" />
<f:selectItem id="si_afternoon"
itemLabel="Afternoon (12:00 - 18:00)" itemValue="afternoon" />
<f:selectItem id="si_evening" itemLabel="Evening (18:00 - 00:00)"
itemValue="evening" />
</h:selectOneMenu>
<h:outputText rendered="#{selectedPeriodPart eq 'HOURS'}"
value="Hours" />
<h:panelGroup id="hours_spot"
rendered="#{selectedPeriodPart eq 'HOURS'}">
<ui:include src="/includes/reservation/select_hours.xhtml" />
</h:panelGroup>
</h:panelGrid>
</s:div>
Примечание: календарь значение этого получить передается обратно в бобе, но значение этого фрагмента кода нет (это если вы удалите тонированный условный):
selectOneMenu value="#{selectedDaypart}" rendered="#{selectedPeriodPart eq 'DAY_PART'}"
Спасибо за ответ на вопрос =) Это не решает мою проблему = ( Чтобы сделать некоторые вещи ясно: Подложка боб сессионного компонента (EJB). С областью разговора Я попытался обертывание
selectOneMenu value="#{selectedDaypart}"
в aa4j:outputPanel
и поместите условное обозначение на этот компонент, однако это тоже не сработало. – CasperИзвините, вы не можете больше помочь, чем просто предлагать запустить отладчик.По крайней мере, теперь вы знаете, где искать причину проблемы и как ее исправить: убедитесь, что атрибут «rendered» рассматриваемого компонента не оценивается как «false» в последующем запросе. – BalusC