Search code examples
jsfparameter-passingmanaged-bean

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


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}?


Solution

  • 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: