Hello Peter,

I'm having a few troubles using your component, could you please help me out? 
I'm using the 1.1.1beta1 release, and my problem arises from using the 
following jsf structure (I'll filter out everything unimportant):


  |     <t:dataTable var="var"
  |                 rowIndexVar="i"
  |             value="#{ list }">
  | 
  |             <h:column>
  |                     <h:commandLink action="#{ someBean.edit }" 
immediate="true" value="edit"/>
  |             </h:column>
  | 
  |             <h:column>
  |                     <h:outputText value="#{ var.somefield }" rendered="#{ 
index != i }"/>
  |                     <h:selectOneMenu value="#{ current.somefield }" 
rendered="#{ index == i }">
  |                             <si:selectItems value="#{ combo }" var="v" 
label="#{ v.somefield }"/>
  |                     </h:selectOneMenu>
  |             </h:column>
  |           </t:dataTable>
  | 

I understand if this code appears a bit unusual, the point is to have both 
viewing and editing on the same table. The 'edit' method will, among a few 
other things, set the seam context variable 'index' to the position in the list 
of the selected item, as to have the second clause 'rendered' return true so to 
show the selectbox.

I've been working with such pattern, and it behaved nicely using f:selectItems 
and binding the values to strings. Upon switching to si:selectItems, however, I 
now get the following error as soon as entering the page:


  | javax.faces.el.PropertyNotFoundException: /WEB-INF/test.xhtml @50,118 
value="#{ current.somefield }": Target Unreachable, identifier 'current' 
resolved to null
  |     at 
com.sun.facelets.el.LegacyValueBinding.getType(LegacyValueBinding.java:96)
  |     at 
org.jboss.seam.selectitems.jsf.SelectItemsComponentHandler.addConverters(SelectItemsComponentHandler.java:64)
  |     at 
org.jboss.seam.selectitems.jsf.SelectItemsComponentHandler.onComponentCreated(SelectItemsComponentHandler.java:237)
  |     at 
com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:161)
  |     at 
com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:295)
  |     at 
com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:165)
  |     at 
com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
  |     at 
com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:295)
  |     at 
com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:165)
  |     at 
com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.j
  | ...
  | 

The outjected object 'current' is set only after the 'edit' method is invoked. 
So it makes sense that such error would occur if I was trying to show the combo 
upon first entering the page. Note, though, that the 'rendered' clause will 
return false in this occasion - i only want to see the combo after calling 
'edit'. It seems si:selectItems attempts to evaluate the value of my 
h:selectOneMenu, whether or not it should be rendered, and it ends up breaking 
the code. Is there any way to achieve the behavior I want?

Much obliged,
Luis


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3985462#3985462

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3985462
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to