Думаю, вопрос понятен по названию.Это мой настоящий bean-компонент:
@ManagedBean(name="selector")
@RequestScoped
public class Selector {
private String profilePage;
@PostConstruct
public void init() {
System.out.println("I'm PostConstruct");
if(profilePage==null || profilePage.trim().isEmpty()) {
this.profilePage="main";
}
}
public String getProfilePage() {
return profilePage;
}
public void setProfilePage(String profilePage) {
this.profilePage=profilePage;
System.out.println("I'm setProfilePage");
}
}
И я изменяю его значение (profilePage) с помощью вызова ajax:
<h:commandButton value="Some Action">
<f:setPropertyActionListener target="#{selector.profilePage}" value="some" />
<f:ajax event="action" render=":profileContent"/>
</h:commandButton>
Я замечаю, что мой вывод на сервере не является последовательностьюI'm PostConstruct
с последующим I'm setProfilePage
.Иногда I'm setProfilePage
полностью отсутствует.
Я читал, что Методы, помеченные аннотацией @PostConstruct, будут вызываться после создания компонента, внедрения любых ресурсов и установки любых управляемых свойств, но до Боб фактически помещается в область действия.
Я хотел бы знать, может ли @PostConstruct
вызвать некоторые конфликты с методом установки.
Приветствия