Я изучаю, как использовать ajax в jsf, я сделал страницу, которая фактически ничего не представляет, текст ввода, который заполняется числом, представленный на сервере, вызывает установщик для этого элемента со значением, представленным, и отобразите значение геттера.
Вот простой bean код:
@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;
}
}
И страница 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>
Как вы видите, это область с привязкой к запросу bean, всякий раз, когда я нажимаю кнопку, сервер показывает, что он создает экземпляр bean, но метод setter никогда не вызывается, таким образом, getter возвращает всегда "1" в качестве значения строки.
Когда я удаляю сеттер, вызывается нормально.