[ http://issues.apache.org/jira/browse/MYFACES-1492?page=comments#action_12449389 ] Mircea Zahan commented on MYFACES-1492: ---------------------------------------
So "the submitted value by the user always takes precedence". I can really live with that. As I was saying before :) is common sense. But I can't live with the way the event is fired. I'm repeating myself intentionally. And Mario, I will use valueChangeNotifier (didn't try it yet) but this looks to me like a nice looking patch glued over an ugly hole :) No offence intended for anyone. Not to mention the redundancy, which is a bad thing, any way you look at it. The way I see things, I would repair the hole instead of patching it. The simplest things are the most efficient ones. Kind regards, Mircea. > valueChangeListener is being called before the setters, even with > immediate="true" > ---------------------------------------------------------------------------------- > > Key: MYFACES-1492 > URL: http://issues.apache.org/jira/browse/MYFACES-1492 > Project: MyFaces Core > Issue Type: Bug > Components: General > Affects Versions: 1.1.4 > Reporter: Mircea Zahan > Assigned To: Cagatay Civici > Priority: Critical > Fix For: 1.1.4 > > > valueChangeListener is being called before the setters, even with > immediate="true". > This is not the right behavior since it overwrites any property modified in > the event handler. > <t:panelGrid columns="2" cellpadding="0" cellspacing="5px" > columnClasses="left top, left top"> > <t:outputLabel for="infoId" value="Options"/> > <t:selectOneMenu id="infoId" value="#{productBean.infoId}" > onchange="submit()" valueChangeListener="#{productBean.valueChangedHandler}" > immediate="true"> > <f:selectItem itemValue="-1" itemLabel="<new short info>"/> > <f:selectItems value="#{productBean.shortInfoSelectItems}"/> > </t:selectOneMenu> > <t:outputLabel for="descText" value="Description"/> > <t:inputTextarea id="descText" rows="8" > value="#{productBean.description}"/> > <t:outputLabel for="utilText" value="Usage"/> > <t:inputTextarea id="utilText" styleClass="wXXXL" rows="8" > value="#{productBean.usage}"/> > </t:panelGrid> > public class ProductBean { > private Long infoId; > private String description; > private String usage; > // .... setters and getters for the above properties > public void valueChangedHandler(ValueChangeEvent event) { > Long infoId = (Long) event.getNewValue(); > if ((infoId != null) && (infoId > 0)) { > //DataService and ProductInfo are related to Hibernate > ProductInfo info = DataService.getProductInfo(infoId); > this.description = info.getDescription(); > this.usage = info.getUsage(); > } > } > } > Description and Usage properties can never be changed since they get > overwritten with the initial values. > :((((((((((((((((((((((((( -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
