Я вставляю данные в форму, поэтому транзакция становится грязной, и я проверяю это.
если она грязная, я показываю всплывающее окно с параметрами для навигации и фиксации или навигации с откатом.
Я пробовал перетаскивать кнопка с таким же действием вне всплывающего окна, и она сработала. поэтому я предполагаю, что проблема возникает из всплывающего окна !! но я вижу, что все в порядке.
я что-то пропустил?
всплывающее окно:
<af:popup childCreation="immediate" autoCancel="disabled" id="p1" contentDelivery="immediate">
<af:panelWindow id="pw2" contentWidth="400" title="Warning" closeIconVisible="false">
<af:panelGridLayout id="pgl8">
<af:gridRow marginTop="5px" height="auto" id="gr3">
<af:gridCell marginStart="5px" width="100%" marginEnd="5px" id="gc4">
<af:outputText value="SaveFirst" id="ot17"/>
</af:gridCell>
</af:gridRow>
<af:gridRow marginTop="5px" height="auto" marginBottom="5px" id="gr4">
<af:gridCell marginStart="5px" width="100%" marginEnd="5px" id="gc5" halign="end">
<af:panelGroupLayout id="pgl15" layout="horizontal">
<af:button text="NavigateWithCommit" id="b1"
actionListener="#{homeMgr.navigateWithCommit}"/>
<af:button text="NavigateWithRollBack" id="b2"
actionListener="#{homeMgr.navigateWithRollBack}"/>
<af:button text="Cancel" id="b3"
actionListener="#{homeMgr.closeConfimPopup}"/>
<f:facet name="separator">
<af:spacer width="5" height="0" id="s8"/>
</f:facet>
</af:panelGroupLayout>
</af:gridCell>
</af:gridRow>
</af:panelGridLayout>
</af:panelWindow>
</af:popup>
метод фиксации:
public void navigateWithCommit(ActionEvent actionEvent) {
System.err.println("before");
ADFUtils.executeOperator("Commit");
System.err.println("After");
navigateMethod();
}
это показано ниже в журнале без фиксации
before
<oracle.adf.model> <QueryCollection> <clearNRT> <Initialized row(s) exists after commit, in collection:
TspGovernorateVO1
in ViewObject:
TspGovernorateVO1.
Application should ensure the created row is posted or removed, before commit.Removing row(s) from collection on commit.>
after