Hello!

Thanks for your reply!

Simon Kitching wrote on 14.03.2009 15:39:
 Have you tried this? <t:selectItems value="#{myBean.allRoles}"/>

I have, but I get a NullPointerException if I do.

Caused by: java.lang.NullPointerException
   at org.apache.catalina.connector.Request.getAttribute(Request.java:877)
at org.apache.catalina.connector.RequestFacade.getAttribute(RequestFacade.java:263) at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:82) at org.apache.myfaces.context.servlet.RequestMap.getAttribute(RequestMap.java:47) at org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:104) at org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:38) at org.apache.myfaces.custom.selectitems.AbstractUISelectItems.putIteratorToRequestParam(AbstractUISelectItems.java:131) at org.apache.myfaces.custom.selectitems.AbstractUISelectItems.createSelectItems(AbstractUISelectItems.java:107) at org.apache.myfaces.custom.selectitems.AbstractUISelectItems.getValue(AbstractUISelectItems.java:75) at org.apache.myfaces.shared_impl.util.SelectItemsIterator.hasNext(SelectItemsIterator.java:128) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:557) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:542) at org.apache.myfaces.shared_impl.renderkit.html.HtmlCheckboxRendererBase.renderCheckboxList(HtmlCheckboxRendererBase.java:117) at org.apache.myfaces.shared_impl.renderkit.html.HtmlCheckboxRendererBase.encodeEnd(HtmlCheckboxRendererBase.java:65) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
   ... 76 more

Looking at the actual implementation of the t:selectItems tag, I think this is consistent (it sets the current map value to the request under the provided variable name and then calls a method which retrieves this and tries to get the label and value for the select item -- this fails if no variable name is given). It just doesn't fit what the tag is supposed to do as per the documentation, at least as I understand it.

I could simply built the list of SelectItem instances myself and set this in my bean. But I actually wouldn't want to handle more of the internal UI elements than necessary, so if the tag could do this, I think that would be the better approach. I also wonder if the documentation is wrong here or the tag class (a matter of perspective, I guess). ;-)

Regards,
Johannes Ruthenberg

Reply via email to