Я хочу написать функцию ajax и передать выбранное значение из выпадающего меню выбора в bean. Это то, что у меня есть:Как использовать <a4j:ajax> с помощью <f: selectItems>
<rich:select id="ctpMeasurementUnits"
value="#{associationBean.selectedMruId}"
defaultLabel="#{msg['classifier.select']}"
requiredMessage="#{msg['classifier.measurementUnitRequire']}"
validatorMessage="#{msg['common.selectIllegalValue']}">
<f:selectItems
value="#{measurementUnitsListBean.allMeasurementUnits}"
var="mru" itemLabel="#{mru.mruName}" itemValue="#{mru.mruId}">
<a4j:ajax event="change" execute="@this" listener="#{associationBean.onSelectChangeMru(mru)}" />
</f:selectItems>
<f:validateRequired />
<rich:validator />
</rich:select>
Однако, используя этот кусок кода я получаю сообщение об ошибке:
<a4j:ajax> Unable to attach <a4j:ajax> to non-ClientBehaviorHolder parent
Вопрос: как использовать функцию АЯКС из f:selectItems
выпадающего меню?
Если я attach a4j: ajax to rich: select, то он не работает (метод onSelectChangeMru никогда не вызывается) – WheelPot
Тогда возникает совершенно другая проблема, вызывающая это @WheelPot. В своем роде этот ответ напрямую затрагивает проблему, о которой вы сообщали. Любое количество вещей может привести к тому, что действие ajax не будет срабатывать. Посмотрите на консоль javascript и разместите здесь метод прослушивателя, – kolossus
@WheelPot не он должен предотвратить выполнение, но избавиться от параметра, к тому времени, когда слушатель выполнит значение в bean-компоненте, будет уже изменен. (В любом случае параметр равно null). – Makhiel