Przesłano wartości formularza niezaktualizowane w modelu podczas dodawania <f: ajax> do <h: commandButton>

Uczę się, jak używać ajax w jsf, zrobiłem stronę, która w rzeczywistości nic nie robi, tekst wejściowy wypełniony liczbą, przesłany na serwer, wywołujący setter dla tego elementu z przesłaną wartością i wyświetlający gettera wartość.

Oto prosty kod fasoli:

@ManagedBean(name="helper",eager=true)
public class HealthPlanHelper {


    String random = "1";

    public void setRandomize(String s){
        random = s;
                System.out.println("Calling setter");
    }

    public String getRandomize(){
        return random;
    }

}

A strona jsf:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core">
<h:head></h:head>
<h:body>

    <h:form>
        <h:commandButton action="nothing">
            <f:ajax render="num"/>
        </h:commandButton>

        <h:inputText value="#{helper.randomize}" id="num"/>
    </h:form>

</h:body>
</html>

Jak widzisz, jest to fasola o zasięgu żądania, ilekroć klikam przycisk, serwer pokazuje, że tworzy instancję komponentu bean, ale metoda settera nigdy nie jest wywoływana, więc getter zwraca zawsze „1” jako wartość strunowy.

Kiedy usuwam seter jest wywoływany normalnie.

questionAnswers(1)

yourAnswerToTheQuestion