myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mircea Zahan (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-1492) valueChangeListener is being called before the setters, even with immediate="true"
Date Mon, 13 Nov 2006 15:21:39 GMT
    [ http://issues.apache.org/jira/browse/MYFACES-1492?page=comments#action_12449396 ] 
            
Mircea Zahan commented on MYFACES-1492:
---------------------------------------

WOW. That didn't cross my mind :(

In this case I owe appologies to everyone involved in this discussion, especially to Cagatay.

But it would have been good from him to say in the first line "it's the specs, dude" :)

I will dig the specs then and bug :) the guys who wrote it, because it really bugs me.


Thank you all for your patience,
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

        

Mime
View raw message