f: аргумент метода слушателя ajax

TODO: Получить выбранную строку в h:datatable.

Фрагмент кода с использованием привязки HtmlDataTable:

<h:dataTable value="#{bean.licenses}" var="license" rendered="#{!empty bean.licenses}" binding="#{bean.dataTable}">
  <h:column>
    <h:selectOneRadio onclick="uncheckOthers(this);" >
      <f:selectItem itemValue="null" />
      <f:ajax listener="#{bean.updateSelected}" render="licenseGenerator:submitButtons">
        <f:param name="license" value="#{license}" />
      </f:ajax>
    </h:selectOneRadio>
  </h:column>
</h:dataTable>

Таким образом, вышеупомянутое является одним из способов сделать это, однако, так как я уже использую EL 2.2, я пытался сделать что-то вроде принятого ответа. и обновите f:ajax до

<f:ajax listener="#{bean.updateSelected(license)}" render="licenseGenerator:submitButtons">

Когда я обновляю код с помощью приведенного выше кода, слушатель не вызывается, поэтому я проверил документацию, которая гласит:

javax.el.MethodExpression (подпись должна соответствовать общедоступному void processAjaxBehavior(событие javax.faces.event.AjaxBehaviorEvent) генерирует javax.faces.event.AbortProcessingException)

Итак, в основном с вышеуказанной подписью я не могу использовать что-то вроде

public void listener(License license){
    //...
}

Однако, так как это был принятый ответ, я уверен, что что-то здесь упускаю. Спасибо за помощь!

Версия JSF: Внедрение JSF Mojarra 2.2.12
Сервер: Apache Tomcat 8.0.24

0 ответов

Другие вопросы по тегам