[
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