データベースを読み取り、さらに処理する値を選択してドロップダウンを作成しています。問題は処理部分で発生します。
ドロップダウンの ajax リスナーは、すべての選択ではなく、代替選択でのみトリガーされます。初めて値を選択すると、リスナーがトリガーされません。2 回目に選択すると、再びトリガーされます。3 回目もトリガーされません。
<p:selectOneMenu id="selectedBPZero" value="#{selectCriteriaBean.selectedBPZero}" >
<f:selectItem itemValue="0" itemLabel="Select Option" />
<f:selectItem itemValue="1" itemLabel="Add New BP" />
<f:selectItems value="#{selectCriteriaBean.bpZeroList}"/>
<p:ajax listener="#{selectCriteriaBean.bpZeroListSelectActionByAjaxCall}" event="change" update="selectedBPOne,selectedBPOneTextInfo" process="@this"/>
</p:selectOneMenu>
リスナーメソッドは以下の通りです
public void bpZeroListSelectActionByAjaxCall() {
setParentBusinessProcessId(0);
setSelectedBPOne(0);
setSelectedBPTwo(0);
setBPOneListRendered(false);
setBPTwoListRendered(false);
setModifyButtonBPZeroRendered(false);
setModifyButtonBPOneRendered(false);
setModifyButtonBPTwoRendered(false);
if (getSelectedBPZero() == 0) {
RedirectScreen.redirectToPage("/ALM/home.faces");
} else {
if (getSelectedBPZero() == 1) {
setAddBPLevelNumber(0);
addBP();
} else {
setBPOneListRendered(true);
setModifyButtonBPZeroRendered(true);
// Get BP List
bpLevelOneList = bpList(1,getSelectedBusinessProcessLevelZero());
RedirectScreen.redirectToPage("/ALM/home.faces");
}
}
}
イベントをvalueChange
とclick
に変更しようとしましたが、うまくいきません。私は GlassFish セットアップで Eclipse に取り組んでいます。
Rational Application Developer (RAD) でテストしたのと同じコードが動作しています。
ティア