[ 
https://issues.apache.org/jira/browse/MYFACES-3370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13134111#comment-13134111
 ] 

Joe Rossi commented on MYFACES-3370:
------------------------------------

Culprit appears to be 
org.apache.myfaces.shared.util.SelectItemsIterator.hasNext():


            if (child instanceof UISelectItem)
            {
                UISelectItem uiSelectItem = (UISelectItem) child;
                Object item = uiSelectItem.getValue();
                if (item == null)
                {
                    // no value attribute --> create the SelectItem out of the 
other attributes
                    Object itemValue = uiSelectItem.getItemValue();
                    String label = uiSelectItem.getItemLabel();
                    String description = uiSelectItem.getItemDescription();
                    boolean disabled = uiSelectItem.isItemDisabled();
                    boolean escape = uiSelectItem.isItemEscaped();
                    boolean noSelectionOption = 
uiSelectItem.isNoSelectionOption();
                    if (label == null)
                    {
                        label = itemValue.toString();
                    }
                    item = new SelectItem(itemValue, label, description, 
disabled, escape, noSelectionOption);
                }
                else if (!(item instanceof SelectItem))
                {
                    ValueExpression expression = 
uiSelectItem.getValueExpression("value");
                    throw new IllegalArgumentException("ValueExpression '"
                            + (expression == null ? null : 
expression.getExpressionString()) + "' of UISelectItem : "
                            + RendererUtils.getPathToComponent(child) + " does 
not reference an Object of type SelectItem");
                }
                _nextItem = (SelectItem) item;
                return true;
            }


Shouldn't it ignore the child if it's rendered attribute evaluates to false?
                
> f:selectItem ignores rendered attribute
> ---------------------------------------
>
>                 Key: MYFACES-3370
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3370
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.9
>         Environment: Jetty 6, Myfaces 2.0.9, Primefaces 3.0
>            Reporter: Joe Rossi
>            Priority: Minor
>
> In the following snippet:
>         <h:selectOneMenu id="selector"
>           value="#{cc.attrs.backingBean[cc.attrs.property]}"
>           required="#{cc.attrs.required}"
>           requiredMessage="#{cc.attrs.requiredMessage}"
>           disabledClass="tnui-selectDisabled"
>           disabled="#{cc.attrs.disabled}"
>           immediate="#{cc.attrs.immediate}"
>           readonly="#{cc.attrs.readonly}"
>           onchange="#{cc.attrs.onchange}"
>           style="#{cc.attrs.style}">
>           <f:selectItem
>             
> itemLabel="#{cc.attrs.noSelectOptionLabel}#{sessionBean.classOfService}"
>             itemValue="#{null}"
>             noSelectionOption="true"
>             rendered="false"/>
>           <p:ajax update="#{cc.attrs.updateTargets}" 
> disabled="#{!includeAjaxUpdate}"/>
>           <composite:insertChildren />
>         </h:selectOneMenu>
> The embedded f:selectItem is always included even though it's rendered 
> attribute is set to false.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to