stateListファインをロードしますが、状態値を変更するとバックビーンが呼び出されますが、addressBOはnullです。 どうすれば修正できますか?他の方法でそれを行うには?f:ValueChangeListener EJBインジェクションを無効にする
ありがとうございます。
<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);
}
}
この場合には表示されないアドレスとユーザーの値のset他backbean。
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;
}
}
あなたのビューのコードは、あなたのBeanコードと一致していませんので、あなたの質問/問題は非常に紛らわしいです。それを修正してください(PS:実際にコードだけでなく、実際のコードでも英語でコードを使ってみてください。英語が大幅に改善され、SO-pedians、維持者)。今のところ私は言うことができます:あなたは 'ValueChangeListener'を全く必要としません。あなたは古い価値観に興味がありません。 – BalusC
州の値に応じて、都市のリストがロードされます。私はちょっと英語を知っていますが、私が欲しいものを書くという問題はまだあります。技術的な英語は私にとっては簡単ではありません。私たちはまだコードを英語に翻訳することを考えていますが、ブラジル人のみがコーディングしています。時間があるときに英語に改善します。今すぐ残っている時間はありません:( – pringlesinn
私は古い値は必要ありませんが、 'ValueChangeListener'でなければどうすればいいですか? – pringlesinn