私はibm jsf 1.2を使用しています。私はボタンが付いたメインフォームを持っています。ボタンが押されると、いくつかのバリデーションに従ってレンダリングされるフィールドを持つ新しいパネルダイアログが開きます。ここでレンダリングされたbeanメソッドは、panelDialogのレンダリングで呼び出されませんか?
は私が.jspファイルです:panelDialog上でレンダリング
<hx:jspPanel>
<fieldset>
<h:panelGrid
<hx:commandExButton type="button"
value="#{msg.buttonAddContainer}" id="chooseContainerButton">
<hx:behavior event="onclick" behaviorAction="get;show"
id="behavior2" targetAction="gridListContainers;containerDialog" />
</hx:commandExButton>
</h:panelGrid>
</fieldset>
</hx:jspPanel>
<hx:panelDialog type="modal" id="containerDialog"
noKeybindings="true" showTitleCloseButton="false"
onshow="openDialog()" onhide="closeDialog()"
styleClass="panelDialog" title="#{msg.lblContainer}">
<h:panelGrid id="gridContainerNumber">
<h:outputLabel for="inputContainerNumber"></h:outputLabel>
<h:inputText id="inputContainerNumber" styleClass="inputText">
<!-- some other field - container number-->
<h:message for="inputContainerNumber" id="messageInputContainerNumber"> </h:message>
<h:outputLabel id="labelInputBookingNumber" styleClass="outputLabel"
for="inputBookingNumber" value="#{msg.lblBookingNumber}"
rendered="#{myBean.isBookingNumberRendered}">
</h:outputLabel>
<h:inputText id="inputBookingNumber" immediate="true"
value="#{myBean.bookingNumber}"
rendered="#{myBean.isBookingNumberRendered}" styleClass="inputText">
</h:inputText>
<h:message id="mesageInputBookingNumber"
styleClass="message" for="inputBookingNumber"
rendered="#{myBean.isBookingNumberRendered}">
</h:message>
</h:panelGrid>
<h:panelGroup id="groupClear" styleClass="buttonGroup">
<hx:commandExButton id="submitButton"
styleClass="positive"
action="#{myBean.saveContainer}"
type="submit" immediate="true" value="#{msg.buttonSave}">
</hx:commandExButton>
<hx:commandExButton id="cancelButton"
styleClass="negative"
action="#{myBean.clearContainer}"
type="submit" immediate="true" value="#{msg.buttonCancel}">
<hx:behavior event="onclick" behaviorAction="get;hide" id="behavior6"
targetAction="helpBox1;containerDialog"></hx:behavior>
</hx:commandExButton>
</h:panelGroup>
<hx:ajaxRefreshSubmit target="gridListContainers" id="ajaxSubmit1"
onstart="showProgressBar();" oncomplete="hideProgressBar();">
</hx:ajaxRefreshSubmit>
</hx:panelDialog>
私は期待通りに動作していません。レンダリングチェックメソッドisBookingNumberRenderedは、ダイアログが最初に開いたときに呼び出されないため、検証基準が満たされたときに予約番号フィールドは表示されません。私がdialogPanelに他のフィールドを入力し、Saveボタンを押すと(isBookingNumberRenderedが呼び出されます)、再びcontainerButtonを選択すると、フィールドが表示されます。
panelDialogがレンダリングされたときにisBookingNumberRenderedメソッドが初めて呼び出されるのはなぜですか? 助けてください。
敬具、
mismas