Он прекрасно загружает stateList, но когда я изменяю значение состояния, он вызывает бэк, но addressBO имеет значение null.
Как я могу это исправить? Есть ли другой способ сделать это?
Заранее спасибо.
<h:selectOneMenu id="stateList" value="#{newUserController.address.stateID}">
<f:selectItems value="#{addressController.stateList}" />
<f:valueChangeListener type="controller.address.AddressController"/>
<f:ajax event="change" render="cidadeList"/>
</h:selectOneMenu>
<h:selectOneMenu id="cityList" value="#{newUserController.address.cityID}">
<f:selectItems value="#{addressController.cityList}" />
</h:selectOneMenu>
BackBean
package controller.address;
@ManagedBean
@RequestScoped
public class AddressController implements ValueChangeListener {
@EJB
private AddressBO addressBO;
@PostConstruct
public void firstThingToDo() {
stateList = enderecoBO.loadStateListSelectItem();
}
@Override
public void processValueChange(ValueChangeEvent event) throws AbortProcessingException {
String state = (String) event.getNewValue();
cityList = addressBO.loadCityList(state);
}
}
Другой бэк, который устанавливает значение адреса и пользователя, который не появляется в этом случае.
package controller.user;
@ManagedBean
@RequestScoped
public class NewUserController {
private Address address;
private User user;
@EJB
private NewUserBO newUserBO;
public void registerNewUser() {
newUserBO.register(user, address);
}
public Address getAddress() {
return this.address;
}
public void setAddress(Address address) {
this.address = address;
}
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
}