I encounter a problem with JSF value change listener

I have a selection box
<h:selectOneMenu id="selDebtorType" converter="javax.faces.Integer"
                                           
validator="#{DebtorController.validateDebtorType}"
                                           
valueChangeListener="#{DebtorController.changeDebtorType}"
                                            onchange="this.form.submit();"
                                                    
value="#{DebtorController.currentDebtor.debtorType}">
                                        <f:selectItems
value="#{DebtorController.debtorTypes}"/>
                                    </h:selectOneMenu>

Aslo I have a input box
 <h:inputText id="txtDebtorID" size="20" required="true"
                                                
value="#{DebtorController.currentDebtor.debtorPK.debtorID}"/>

Managed bean: DebtorController is in request scope
In select one box there is value change listener. I want to set debtor
ID in there.

But I tried  in that method:
public void changeDebtorType(ValueChangeEvent event) {
        log.info("Debtor Type has been changed");
        log.info("New value is:" + event.getNewValue());
        log.info("Debtor ID is:" + currentDebtor.getDebtorPK().getDebtorID());
        currentDebtor.getDebtorPK().setDebtorID("abc");
    }

log output for debtor ID is null
and after I setting debtor ID, it doesn't display abc in input box
when page rendered.

But I have put something in debtor ID input text box, after changing
selection box, its value is same as I input. Neither I can get this by
get method nor set it by set method.

Is listener has different life cycle? Say it doesn't have update model phase

--

Anthony Hong

Reply via email to