Yes - but I extended the findComponent concept for data table to allow
scoped id's with a row-identifier included, so this is now much the
same as a client-id, except if the renderer does a conversion.

So what Dave wants ought to work. In the latest nightly build and
several before them.

regards,

Martin

On 2/12/06, Jacob Hookom <[EMAIL PROTECTED]> wrote:
> findComponent has nothing to do with client ids.  They work off of
> different logic.
>
> Martin Marinschek (JIRA) wrote:
>
> >    [ 
> > http://issues.apache.org/jira/browse/MYFACES-1110?page=comments#action_12366049
> >  ]
> >
> >Martin Marinschek commented on MYFACES-1110:
> >--------------------------------------------
> >
> >Hmmm...
> >
> >yes, you should be able to search from the view-root no problem.
> >
> >Can you debug a little through find-component?
> >
> >I have a working test-case in tomahawks test source, plus we use the method 
> >successfully in the AJAX part.
> >
> >regards,
> >
> >Martin
> >
> >
> >
> >>findComponent return null for a valid clientId
> >>----------------------------------------------
> >>
> >>         Key: MYFACES-1110
> >>         URL: http://issues.apache.org/jira/browse/MYFACES-1110
> >>     Project: MyFaces
> >>        Type: Bug
> >>  Components: Implementation
> >>    Versions: Nightly
> >> Environment: JBoss 4.0.3, XP
> >>    Reporter: Dave
> >>    Assignee: Martin Marinschek
> >>    Priority: Critical
> >>
> >>
> >
> >
> >
> >>In a PhaseListener, first get all the clientId(s) with queued messages, 
> >>then try to find the components. But ViewRoot.findComponent(clientId) 
> >>return null.
> >>
> >>public void beforePhase(PhaseEvent event) {
> >>    FacesContext context = event.getFacesContext();
> >>    UIViewRoot root = context.getViewRoot();
> >>    Iterator<String> itr = context.getClientIdsWithMessages();
> >>    while (itr.hasNext()) {
> >>      String clientId = itr.next();
> >>      UIComponent component = root.findComponent(clientId);
> >>      // ERROR: component is null
> >>      ....
> >>    }
> >>}
> >>From debugger, clientId is
> >>emp:empForm:empTable:1:salary:_idJsp144
> >>The clientId is returned from context.getClientIdsWithMessages();
> >>It must be valid, but root.findComponent() returns NULL.
> >>JSF should have the following API
> >>FacesContext.getComponentsWithMessages();
> >>which is better than getClientIdsWithMessages();
> >>
> >>
> >
> >
> >
>
>
> --
> Jacob Hookom  -  Minneapolis
> ----------------------------
> JSF-EG, JSF-RI, EL, Facelets
>
>


--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to