我在Seam中創建了一個webapp,但遇到了一個我似乎無法修復的問題。表單值在a4j之後沒有傳遞給Seam bean reRender
我有一個JSF表單,客戶可以通過組合框選擇預訂類型。根據選定的值,其他表單組件被渲染。
例如:客戶選擇小時作爲預訂類型,panelGroup被呈現在客戶可以選擇開始和結束小時的地方。但是,如果客戶選擇「部分時間」作爲預訂類型,則選擇一個菜單得到渲染,客戶可以在其中選擇一天中的一部分(早上,下午,晚上)
表現良好,但組件的值使用渲染的條件不會傳遞給bean。他們保持空值。
這是我講的代碼:
<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'}"
謝謝回答這個問題=)不解決我的問題=( 做一些事情說清楚:該支持Bean是有狀態會話bean(EJB)。與之交談範圍 我試着在包裝
selectOneMenu value="#{selectedDaypart}"
一個a4j:outputPanel
並把渲染的條件放在那個組件上,但是這也不起作用。 – Casper 2010-05-11 13:29:41對不起,只是建議運行一個調試器而已。至少,您現在知道在哪裏查找問題的原因以及如何解決問題:確保所討論組件的「rendered」屬性在後續請求中不會評估爲「false」。 – BalusC 2010-05-11 13:35:01