How to pass parameter to f:ajax in h:inputText? f:param does not work How to pass parameter to f:ajax in h:inputText? f:param does not work ajax ajax

How to pass parameter to f:ajax in h:inputText? f:param does not work


The <f:param> works in links and buttons only, not in inputs.

If your environment supports EL 2.2, just pass it as method argument instead:

<h:inputText ...>    <f:ajax listener="#{bean.listener(item.id)}" /></h:inputText>

public void listener(Long id) {    // ...}

You can also just pass the whole item:

<h:inputText ...>    <f:ajax listener="#{bean.listener(item)}" /></h:inputText>

public void listener(Item item) {    // ...}

If your environment doesn't or can't support EL 2.2, then evaluate EL programmatically instead.

public void listener() {    FacesContext context = FacesContext.getCurrentInstance();    Long id = context.getApplication().evaluateExpressionGet(context, "#{item.id}", Long.class);    // ...}