Pass input text value to bean method without binding input value to bean property

membersound picture membersound · Aug 13, 2012 · Viewed 91.1k times · Source

Can I pass a input text field value to a bean method without binding the value to a bean property?

<h:inputText value="#{myBean.myProperty}" />
<h:commandButton value="Test" action="#{myBean.execute()} />

Can I do this without doing temporary save in #{myBean.myProperty}?

Answer

BalusC picture BalusC · Aug 14, 2012

Bind the component as UIInput to the view and use UIInput#getValue() to pass its value as method argument.

<h:inputText binding="#{input1}" />
<h:commandButton value="Test" action="#{myBean.execute(input1.value)}" />

with

public void execute(String value) {
    // ...
}

Note that the value is this way already converted and validated the usual JSF way.

See also: