You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Cagatay Civici (JIRA)" <de...@myfaces.apache.org> on 2006/11/13 00:59:38 UTC
[jira] Resolved: (MYFACES-1492) valueChangeListener is being called
before the setters, even with immediate="true"
[ http://issues.apache.org/jira/browse/MYFACES-1492?page=all ]
Cagatay Civici resolved MYFACES-1492.
-------------------------------------
Fix Version/s: 1.1.4
Resolution: Invalid
> 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
> 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