Seam에서 webapp을 만들고 있지만 수정할 수없는 문제가 발생했습니다.a4j reRender 후에 Seam Bean으로 전달 된 폼 값이 없습니다.
고객이 콤보 상자를 통해 예약 유형을 선택할 수있는 JSF 형식을 가지고 있습니다. 선택한 값에 따라 다른 양식 구성 요소가 렌더링됩니다.
예 : 고객이 예약 유형으로 시간을 선택하면 고객이 시작 시간과 종료 시간을 선택할 수있는 위치에서 panelGroup이 렌더링됩니다. 그러나 고객이 예약 유형으로 '오늘의 일부'를 선택하면 고객이 하루 중 일부 (오전, 오후, 저녁)를 선택할 수있는 곳에서 selectOneMenu가 렌더링됩니다.
다시 렌더링 할 수 있지만 구성 요소의 값 렌더링 된 조건부를 가진 객체는 빈에 전달되지 않습니다. 그들은 null 값을 유지합니다.
<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'}"
감사합니다. 대화의 범위와 난에
selectOneMenu value="#{selectedDaypart}"
포장 시도 aa4j:outputPanel
그리고 해당 구성 요소에 렌더링 된 조건부를 넣었습니다. 그러나 이것은 작동하지 않았습니다. – Casper죄송합니다. 단지 디버거를 실행하라는 제안 이외에는 도움이되지 않습니다.적어도, 문제의 원인과 해결 방법을 찾아야한다 : 문제의 컴포넌트의'rendered' 애트리뷰트가 후속 요청에서'false'로 평가되지 않도록하십시오. – BalusC