Hello,

I need for each UIInput object the backing bean and the attribute name that are 
bound to this component.

A simple example:

// sample Backing Bean
@ManagedBean(name="person")
class Person{
  private String name;
  private String surname;
  private Address address;
 ...
}

// sample xhtml-page
<h:inputText id="inputField1" value="#{person.name}"/>
<h:inputText id="inputField2" value="#{person.surname}"/>
<address:addressCC id="address" address="#{person.address}/>

// sample composite component
<composite:interface>
  <composite:attribute name="address"/>
</composite:interface>
<composite:implementation>
  <h:inputText id="inputField3" value="#{cc.attrs.zipcode}"/>
</composite:implementation>

The information I need is the value binding at runtime.
For this example, that would be:
1. inputField1 => base object: person, attribute name:name
2. inputField2 => base object: person, attribute name:surname
3. inputField3 => base object: address, attribute name:zipcode

If a have such a map, I am able to map the backend event "error occured at 
'Person.address.zipcode'" to the corresponding UIComponent. 

The simplest way to get this data is the method 
ELHelper.getPropertyDetailsOfValueBinding(), which unfortunately does not work 
for the inputField3.

I hope that descibes my concern in more detail.

Regards,
Rene


-------- Original-Nachricht --------
> Datum: Wed, 2 Jun 2010 03:36:27 -0500
> Von: Leonardo Uribe <[email protected]>
> An: MyFaces Discussion <[email protected]>
> Betreff: Re: ExtVal: ELHelper composite component problem

> Hi
> 
> It could be good to have more information about what you are trying to do.
> In myfaces there is a special code that handles "#{cc}" resolution, using
> the Location object to identify the right composite component from the
> composite component stack, so in theory mojarra could have something
> similar
> and that could be the source of the problem.
> 
> regards,
> 
> Leonardo Uribe
> 
> 2010/6/2 Rene Stehr <[email protected]>
> 
> >
> > Dear Gerhard,
> >
> > thank you for the quick reply. I am using the ExtVal library in my
> custom
> > code to get further information about the value binding in order to map
> > errors (from our backend) that occur at the Invoke Application phase to
> the
> > corresponding UIInput-fields. That means, I need to know for each
> > UIInput-object the bound backing bean object and the attribute name,
> both
> > are described by the EL expression in the value-attribute of the UIInput
> > (e.g., #{cc.attrs.person.name} -> Backing Bean object is
> "person1:Person",
> > attribute name is "name"; person1 is just an example of an existing
> object
> > at runtime).
> >
> > If the ELHelper is not able to resolve "cc.attrs" expressions, I would
> be
> > grateful if you could recommend me another solution.
> >
> > Regards,
> > Rene
> >
> > -------- Original-Nachricht --------
> > > Datum: Wed, 2 Jun 2010 00:39:17 +0200
> > > Von: Gerhard Petracek <[email protected]>
> > > An: MyFaces Discussion <[email protected]>
> > > Betreff: Re: ExtVal: ELHelper composite component problem
> >
> > > hi rene,
> > >
> > > are you using the implementation provided by extval for your custom
> code?
> > > or
> > > are you just using extval and the problem occurs during the validation
> > > process?
> > >
> > > regards,
> > > gerhard
> > >
> > > http://www.irian.at
> > >
> > > Your JSF powerhouse -
> > > JSF Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache MyFaces
> > >
> > >
> > > 2010/6/2 Rene Stehr <[email protected]>
> > >
> > > > Hello,
> > > >
> > > >
> > > >
> > > > I am using the ELHelper class in order to achieve information about
> the
> > > > value binding of UIComponents (the binded attribute and the
> > > corresponding
> > > > backing bean). This information can be received by the method
> > > > „ELHelper.getPropertyDetailsOfValueBinding(UIComponent)“, which
> > > returns a
> > > > PropertyDetails-object that contains the data I need.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Here is the code:
> > > >
> > > > ELHelper helper = ExtValUtils.getELHelper();
> > > >
> > > > PropertyDetails details =
> > helper.getPropertyDetailsOfValueBinding(comp);
> > > //
> > > > The comp-Object is an instance of UIInput.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > This solution works very well, however, if the comp-object is part
> of a
> > > > custom Composite Component, the details-object is always null. I
> have
> > > > started to debug the ELHelper but until now I have no clue how it
> works
> > > in
> > > > detail. I suppose that the problem is caused by the “cc.attrs”
> > > expression
> > > > in
> > > > the value-binding of the composite components, e.g.,
> > > > #{cc.attrs.person.name}, that probably can not be resolved.
> > > >
> > > > I also tried to use the ValueExpression directly but this did not
> work
> > > as
> > > > well.
> > > >
> > > >
> > > >
> > > > Does anyone understand that problem or even have a solution?
> > > >
> > > >
> > > >
> > > > Thanks in advance for any help
> > > >
> > > > Regards,
> > > >
> > > > Rene
> > > >
> > > >
> > > >
> > > > -----------------
> > > >
> > > > Facts:
> > > >
> > > > JSF: mojarra 2.0.2
> > > >
> > > > ExtVal: 2.0.4 Snapshot
> > > >
> > > > Server: Apache Tomcat 6.0.26
> > > >
> > > >
> > > >
> > > >
> >
> > --
> > GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> > Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
> >

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

Reply via email to