You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Peter Maas <pf...@gmail.com> on 2005/11/24 10:17:40 UTC

inheritance and

Hi all,

I'm probably missing something obvious, but how can I 'detect' the existence
of a property on a bean? I have a managed bean return a list of users, which
might can be a plain user or an extended 'customer'

class User{
  String firstname;
  String lastname;
  String email;

  // getters and setters
}

class Customer extends User{
  String address;
  // etc.
}


Now if I want to mix those objects in one single dataTable I cannot find a
way to display properties from
customer objects.... the code will break on plain user objects,  and
complains about missing properties.

I tried using jstl inside the table, but I'm not sure how the 'test'
properties of iterated items in the dataTable...  a simple ${!empty
user.address} doesn't  work.

Actually, I would prefer to NOT use jstl..... but stick to JSF.... is it
possible with the existing tags?

regards,

Peter

Re: inheritance and

Posted by Peter Maas <pf...@gmail.com>.
Ok, you are absolutely right.... if rendered is false the expression in
'value' is not evaluated...

furthermore I did manage to solve the problem according to the replies to my
post:

            <h:outputText value="#{user.phone}" rendered="#{user.class.nameeq '
com.dp.data.Customer'}"/>
            <h:outputText value="---" rendered="#{user.class.name ne '
com.dp.data.Customer'}"/>

I still thing this is a very dirty hack, and I find it count-intuitive that
logical expressions in jsp2.0 / jstl are different from JSF expressions i.e
.:

${!empty user.phone}  and #{!empty user.phone} behave differently.....

regards....

Peter


On 11/25/05, Martin Marinschek <ma...@gmail.com> wrote:
>
> The value should not be evaluated when rendered evaluates to "false".
>
> regards,
>
> Martin
>
> On 11/25/05, Peter Maas <pf...@gmail.com> wrote:
> > Well,
> >
> >  I referenced the 'missing' property in the scripting in the test for
> > determining  visibility as well.... didn't test putting
> >  'false' in there directly.... I might try that later today.... I'll let
> you
> > know!
> >
> >  -P
> >
> >
> > On 11/25/05, Simon Kitching <sk...@obsidium.com> wrote:
> > > Peter Maas wrote:
> > > > I'm fully aware of the introspection/reflection api's in the sdk,
> but
> > > > this is not what I want, at least I hoped some support for
> > > > OO/Inheritance would be availlable in JSF
> > >
> > > You want to be able to handle someone providing an instance of a base
> > > class when a particular subclass was really expected. That's not good
> OO
> > > design, and not supporting it isn't a flaw in JSF in my opinion.
> > >
> > > >
> > > > in plain java the problem wouldn't even need
> reflection/introspection!
> > > > I would be able to just use the instanceof operator in an
> if-statement
> > > > and cast the object to the needed type
> > > >
> > > > in jstl this is also not a problem either:
> > > >
> > > > ${!empty bean.method }
> > > >
> > > > will not fail is the bean doesn't have the requested property, this
> > > > counts as 'empty'
> > >
> > > If so, I would regard that as very poor design in jstl. A method that
> > > doesn't exist is not "empty"; it's an error. Any use of "instanceof"
> is
> > > a warning sign of incorrect OO design.
> > >
> > > I don't mean to be critical of your code; I'm just pointing out that
> JSF
> > > not handling this elegantly isn't a problem with JSF as far as I am
> > > concerned.
> > >
> > > >
> > > > So, in your opinion, the only way to solve this problem would be:
> > > >
> > > > write a custom component for rendering text which encapsulates the
> > > > exeption thrown by invocating a non-existent method (or tests if the
> > > > method is callable or not, which in most cases would be less
> > > > efficient) ....?
> > > >
> > >
> > > Someone suggested earlier doing:
> > >    <h:outputText value="#{...}" rendered="#{.....}"/>
> > > You indicated that this didn't work because the value expression was
> > > evaluated even when the rendered expression was false.
> > >
> > > I'm a bit surprised by that; I would have expected value to be ignored
> > > when the component isn't rendered. Making this happen would also solve
> > > your problem wouldn't it?
> > >
> > > Does anyone know why the value would be evaluated when rendered is
> false?
> > >
> > > Regards,
> > >
> > > Simon
> > >
> >
> >
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>

Re: inheritance and

Posted by Martin Marinschek <ma...@gmail.com>.
The value should not be evaluated when rendered evaluates to "false".

regards,

Martin

On 11/25/05, Peter Maas <pf...@gmail.com> wrote:
> Well,
>
>  I referenced the 'missing' property in the scripting in the test for
> determining  visibility as well.... didn't test putting
>  'false' in there directly.... I might try that later today.... I'll let you
> know!
>
>  -P
>
>
> On 11/25/05, Simon Kitching <sk...@obsidium.com> wrote:
> > Peter Maas wrote:
> > > I'm fully aware of the introspection/reflection api's in the sdk, but
> > > this is not what I want, at least I hoped some support for
> > > OO/Inheritance would be availlable in JSF
> >
> > You want to be able to handle someone providing an instance of a base
> > class when a particular subclass was really expected. That's not good OO
> > design, and not supporting it isn't a flaw in JSF in my opinion.
> >
> > >
> > > in plain java the problem wouldn't even need reflection/introspection!
> > > I would be able to just use the instanceof operator in an if-statement
> > > and cast the object to the needed type
> > >
> > > in jstl this is also not a problem either:
> > >
> > > ${!empty bean.method }
> > >
> > > will not fail is the bean doesn't have the requested property, this
> > > counts as 'empty'
> >
> > If so, I would regard that as very poor design in jstl. A method that
> > doesn't exist is not "empty"; it's an error. Any use of "instanceof" is
> > a warning sign of incorrect OO design.
> >
> > I don't mean to be critical of your code; I'm just pointing out that JSF
> > not handling this elegantly isn't a problem with JSF as far as I am
> > concerned.
> >
> > >
> > > So, in your opinion, the only way to solve this problem would be:
> > >
> > > write a custom component for rendering text which encapsulates the
> > > exeption thrown by invocating a non-existent method (or tests if the
> > > method is callable or not, which in most cases would be less
> > > efficient) ....?
> > >
> >
> > Someone suggested earlier doing:
> >    <h:outputText value="#{...}" rendered="#{.....}"/>
> > You indicated that this didn't work because the value expression was
> > evaluated even when the rendered expression was false.
> >
> > I'm a bit surprised by that; I would have expected value to be ignored
> > when the component isn't rendered. Making this happen would also solve
> > your problem wouldn't it?
> >
> > Does anyone know why the value would be evaluated when rendered is false?
> >
> > Regards,
> >
> > Simon
> >
>
>


--

http://www.irian.at

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

Professional Support for Apache MyFaces

Re: inheritance and

Posted by Peter Maas <pf...@gmail.com>.
Well,

I referenced the 'missing' property in the scripting in the test for
determining  visibility as well.... didn't test putting
'false' in there directly.... I might try that later today.... I'll let you
know!

-P

On 11/25/05, Simon Kitching <sk...@obsidium.com> wrote:
>
> Peter Maas wrote:
> > I'm fully aware of the introspection/reflection api's in the sdk, but
> > this is not what I want, at least I hoped some support for
> > OO/Inheritance would be availlable in JSF
>
> You want to be able to handle someone providing an instance of a base
> class when a particular subclass was really expected. That's not good OO
> design, and not supporting it isn't a flaw in JSF in my opinion.
>
> >
> > in plain java the problem wouldn't even need reflection/introspection!
> > I would be able to just use the instanceof operator in an if-statement
> > and cast the object to the needed type
> >
> > in jstl this is also not a problem either:
> >
> > ${!empty bean.method}
> >
> > will not fail is the bean doesn't have the requested property, this
> > counts as 'empty'
>
> If so, I would regard that as very poor design in jstl. A method that
> doesn't exist is not "empty"; it's an error. Any use of "instanceof" is
> a warning sign of incorrect OO design.
>
> I don't mean to be critical of your code; I'm just pointing out that JSF
> not handling this elegantly isn't a problem with JSF as far as I am
> concerned.
>
> >
> > So, in your opinion, the only way to solve this problem would be:
> >
> > write a custom component for rendering text which encapsulates the
> > exeption thrown by invocating a non-existent method (or tests if the
> > method is callable or not, which in most cases would be less
> > efficient) ....?
> >
>
> Someone suggested earlier doing:
>    <h:outputText value="#{...}" rendered="#{.....}"/>
> You indicated that this didn't work because the value expression was
> evaluated even when the rendered expression was false.
>
> I'm a bit surprised by that; I would have expected value to be ignored
> when the component isn't rendered. Making this happen would also solve
> your problem wouldn't it?
>
> Does anyone know why the value would be evaluated when rendered is false?
>
> Regards,
>
> Simon
>

Re: inheritance and

Posted by Simon Kitching <sk...@obsidium.com>.
Peter Maas wrote:
> I'm fully aware of the introspection/reflection api's in the sdk, but
> this is not what I want, at least I hoped some support for
> OO/Inheritance would be availlable in JSF

You want to be able to handle someone providing an instance of a base 
class when a particular subclass was really expected. That's not good OO 
design, and not supporting it isn't a flaw in JSF in my opinion.

> 
> in plain java the problem wouldn't even need reflection/introspection!
> I would be able to just use the instanceof operator in an if-statement
> and cast the object to the needed type
> 
> in jstl this is also not a problem either:
> 
> ${!empty bean.method}
> 
> will not fail is the bean doesn't have the requested property, this
> counts as 'empty'

If so, I would regard that as very poor design in jstl. A method that 
doesn't exist is not "empty"; it's an error. Any use of "instanceof" is 
a warning sign of incorrect OO design.

I don't mean to be critical of your code; I'm just pointing out that JSF 
not handling this elegantly isn't a problem with JSF as far as I am 
concerned.

> 
> So, in your opinion, the only way to solve this problem would be:
> 
> write a custom component for rendering text which encapsulates the
> exeption thrown by invocating a non-existent method (or tests if the
> method is callable or not, which in most cases would be less
> efficient) ....?
> 

Someone suggested earlier doing:
   <h:outputText value="#{...}" rendered="#{.....}"/>
You indicated that this didn't work because the value expression was 
evaluated even when the rendered expression was false.

I'm a bit surprised by that; I would have expected value to be ignored 
when the component isn't rendered. Making this happen would also solve 
your problem wouldn't it?

Does anyone know why the value would be evaluated when rendered is false?

Regards,

Simon

Re: inheritance and

Posted by Peter Maas <pf...@gmail.com>.
I'm fully aware of the introspection/reflection api's in the sdk, but
this is not what I want, at least I hoped some support for
OO/Inheritance would be availlable in JSF

in plain java the problem wouldn't even need reflection/introspection!
I would be able to just use the instanceof operator in an if-statement
and cast the object to the needed type

in jstl this is also not a problem either:

${!empty bean.method}

will not fail is the bean doesn't have the requested property, this
counts as 'empty'

So, in your opinion, the only way to solve this problem would be:

write a custom component for rendering text which encapsulates the
exeption thrown by invocating a non-existent method (or tests if the
method is callable or not, which in most cases would be less
efficient) ....?

regards,

Peter



On 11/24/05, Craig McClanahan <cr...@apache.org> wrote:
> On 11/24/05, Peter Maas <pf...@gmail.com> wrote:
> > Yep,
> >
> > allready tried that.... errors on the fact the the specific object doesn't
> have the requested property.... maybe I'll need to add an additional domain
> object have ALL the methods and convert the underlying objects on the
> backingbean...
>
>  Peter,
>
>  The APIs you are looking at to introspect properties in a class are the
> same ones that a JSF implementation uses as it is processing value binding
> expressions ... the bean introspection APIs that are built in to the JDK.
> The APIs are all documented in the JavaBeans specification (for more
> information start at
> <http://java.sun.com/products/javabeans/>), but it goes
> something like this:
>
>      BeanInfo beanInfo = Introspector.getBeanInfo(Customer.class);
>      PropertyDescriptor props[] = beanInfo.getPropertyDescriptors();
>
>  This gives you an array of descriptors for all the JavaBean properties
> defined in this class, including Method objects pointing at the getter and
> setter methods so you can use reflection APIs to call them dynamically.
>
>  If this is all a bit low level for your taste, you can also explore the
> APIs in Commons BeanUtils
> (http://jakarta.apache.org/commons/beanutils), which is a
> dependency of both the MyFaces and RI JSF implementations (so you'll have it
> available in your apps already).
>
>  Craig
>
>
>
> >
> >
> > On 11/24/05, Marius Kreis <ma...@nulldevice.org> wrote:
> > > Good point. You could use
> > > <h:outputText value="#{user.address}" rendered="#{ user.class.name eq
> > > "Customer"}">
> > > But I doubt that it works... I think the expression wil be evaluated
> > > first and then throw an exception... sorry.
> > >
> > > Peter Maas wrote:
> > > > I understand that this is possible, but how can I test this within a
> > > > tableGrid component without jstl?
> > > >
> > > > On 11/24/05, *Marius Kreis* < mail@nulldevice.org
> > > > <ma...@nulldevice.org>> wrote:
> > > >
> > > >     Hi Peter.
> > > >     Perhaps you can check for the class of the object with
> > > >     user.class.name <http://user.class.name>
> > > >     I think this should query user.getClass().getName() .... and then
> you
> > > >     can compare it to "User" or "Customer"....
> > > >
> > > >     Peter Maas wrote:
> > > >      > Hi all,
> > > >      >
> > > >      > I'm probably missing something obvious, but how can I 'detect'
> the
> > > >      > existence of a property on a bean? I have a managed bean return
> a
> > > >     list
> > > >      > of users, which might can be a plain user or an extended
> 'customer'
> > > >      >
> > > >      > class User{
> > > >      >   String firstname;
> > > >      >   String lastname;
> > > >      >   String email;
> > > >      >
> > > >      >   // getters and setters
> > > >      > }
> > > >      >
> > > >      > class Customer extends User{
> > > >      >   String address;
> > > >      >   // etc.
> > > >      > }
> > > >      >
> > > >      >
> > > >      > Now if I want to mix those objects in one single dataTable I
> > > >     cannot find
> > > >      > a way to display properties from
> > > >      > customer objects.... the code will break on plain user objects,
>  and
> > > >      > complains about missing properties.
> > > >      >
> > > >      > I tried using jstl inside the table, but I'm not sure how the
> 'test'
> > > >      > properties of iterated items in the dataTable...  a simple
> ${!empty
> > > >      > user.address } doesn't  work.
> > > >      >
> > > >      > Actually, I would prefer to NOT use jstl..... but stick to
> > > >     JSF.... is it
> > > >      > possible with the existing tags?
> > > >      >
> > > >      > regards,
> > > >      >
> > > >      > Peter
> > > >
> > > >
> > >
> > >
> >
> >
>
>

Re: inheritance and

Posted by Craig McClanahan <cr...@apache.org>.
On 11/24/05, Peter Maas <pf...@gmail.com> wrote:
>
> Yep,
>
> allready tried that.... errors on the fact the the specific object doesn't
> have the requested property.... maybe I'll need to add an additional domain
> object have ALL the methods and convert the underlying objects on the
> backingbean...


Peter,

The APIs you are looking at to introspect properties in a class are the same
ones that a JSF implementation uses as it is processing value binding
expressions ... the bean introspection APIs that are built in to the JDK.
The APIs are all documented in the JavaBeans specification (for more
information start at <http://java.sun.com/products/javabeans/>), but it goes
something like this:

    BeanInfo beanInfo = Introspector.getBeanInfo(Customer.class);
    PropertyDescriptor props[] = beanInfo.getPropertyDescriptors();

This gives you an array of descriptors for all the JavaBean properties
defined in this class, including Method objects pointing at the getter and
setter methods so you can use reflection APIs to call them dynamically.

If this is all a bit low level for your taste, you can also explore the APIs
in Commons BeanUtils (http://jakarta.apache.org/commons/beanutils), which is
a dependency of both the MyFaces and RI JSF implementations (so you'll have
it available in your apps already).

Craig



On 11/24/05, Marius Kreis <ma...@nulldevice.org> wrote:
> >
> > Good point. You could use
> > <h:outputText value="#{user.address}" rendered="#{ user.class.name eq
> > "Customer"}">
> > But I doubt that it works... I think the expression wil be evaluated
> > first and then throw an exception... sorry.
> >
> > Peter Maas wrote:
> > > I understand that this is possible, but how can I test this within a
> > > tableGrid component without jstl?
> > >
> > > On 11/24/05, *Marius Kreis* < mail@nulldevice.org
> > > <ma...@nulldevice.org>> wrote:
> > >
> > >     Hi Peter.
> > >     Perhaps you can check for the class of the object with
> > >     user.class.name <http://user.class.name>
> > >     I think this should query user.getClass().getName() .... and then
> > you
> > >     can compare it to "User" or "Customer"....
> > >
> > >     Peter Maas wrote:
> > >      > Hi all,
> > >      >
> > >      > I'm probably missing something obvious, but how can I 'detect'
> > the
> > >      > existence of a property on a bean? I have a managed bean return
> > a
> > >     list
> > >      > of users, which might can be a plain user or an extended
> > 'customer'
> > >      >
> > >      > class User{
> > >      >   String firstname;
> > >      >   String lastname;
> > >      >   String email;
> > >      >
> > >      >   // getters and setters
> > >      > }
> > >      >
> > >      > class Customer extends User{
> > >      >   String address;
> > >      >   // etc.
> > >      > }
> > >      >
> > >      >
> > >      > Now if I want to mix those objects in one single dataTable I
> > >     cannot find
> > >      > a way to display properties from
> > >      > customer objects.... the code will break on plain user
> > objects,  and
> > >      > complains about missing properties.
> > >      >
> > >      > I tried using jstl inside the table, but I'm not sure how the
> > 'test'
> > >      > properties of iterated items in the dataTable...  a simple
> > ${!empty
> > >      > user.address } doesn't  work.
> > >      >
> > >      > Actually, I would prefer to NOT use jstl..... but stick to
> > >     JSF.... is it
> > >      > possible with the existing tags?
> > >      >
> > >      > regards,
> > >      >
> > >      > Peter
> > >
> > >
> >
> >
>

Re: inheritance and

Posted by Peter Maas <pf...@gmail.com>.
Yep,

allready tried that.... errors on the fact the the specific object doesn't
have the requested property.... maybe I'll need to add an additional domain
object have ALL the methods and convert the underlying objects on the
backingbean...

On 11/24/05, Marius Kreis <ma...@nulldevice.org> wrote:
>
> Good point. You could use
> <h:outputText value="#{user.address}" rendered="#{user.class.name eq
> "Customer"}">
> But I doubt that it works... I think the expression wil be evaluated
> first and then throw an exception... sorry.
>
> Peter Maas wrote:
> > I understand that this is possible, but how can I test this within a
> > tableGrid component without jstl?
> >
> > On 11/24/05, *Marius Kreis* < mail@nulldevice.org
> > <ma...@nulldevice.org>> wrote:
> >
> >     Hi Peter.
> >     Perhaps you can check for the class of the object with
> >     user.class.name <http://user.class.name>
> >     I think this should query user.getClass().getName() .... and then
> you
> >     can compare it to "User" or "Customer"....
> >
> >     Peter Maas wrote:
> >      > Hi all,
> >      >
> >      > I'm probably missing something obvious, but how can I 'detect'
> the
> >      > existence of a property on a bean? I have a managed bean return a
> >     list
> >      > of users, which might can be a plain user or an extended
> 'customer'
> >      >
> >      > class User{
> >      >   String firstname;
> >      >   String lastname;
> >      >   String email;
> >      >
> >      >   // getters and setters
> >      > }
> >      >
> >      > class Customer extends User{
> >      >   String address;
> >      >   // etc.
> >      > }
> >      >
> >      >
> >      > Now if I want to mix those objects in one single dataTable I
> >     cannot find
> >      > a way to display properties from
> >      > customer objects.... the code will break on plain user
> objects,  and
> >      > complains about missing properties.
> >      >
> >      > I tried using jstl inside the table, but I'm not sure how the
> 'test'
> >      > properties of iterated items in the dataTable...  a simple
> ${!empty
> >      > user.address } doesn't  work.
> >      >
> >      > Actually, I would prefer to NOT use jstl..... but stick to
> >     JSF.... is it
> >      > possible with the existing tags?
> >      >
> >      > regards,
> >      >
> >      > Peter
> >
> >
>
>

Re: inheritance and

Posted by Marius Kreis <ma...@nulldevice.org>.
Good point. You could use
<h:outputText value="#{user.address}" rendered="#{user.class.name eq 
"Customer"}">
But I doubt that it works... I think the expression wil be evaluated 
first and then throw an exception... sorry.

Peter Maas wrote:
> I understand that this is possible, but how can I test this within a 
> tableGrid component without jstl?
> 
> On 11/24/05, *Marius Kreis* < mail@nulldevice.org 
> <ma...@nulldevice.org>> wrote:
> 
>     Hi Peter.
>     Perhaps you can check for the class of the object with
>     user.class.name <http://user.class.name>
>     I think this should query user.getClass().getName() .... and then you
>     can compare it to "User" or "Customer"....
> 
>     Peter Maas wrote:
>      > Hi all,
>      >
>      > I'm probably missing something obvious, but how can I 'detect' the
>      > existence of a property on a bean? I have a managed bean return a
>     list
>      > of users, which might can be a plain user or an extended 'customer'
>      >
>      > class User{
>      >   String firstname;
>      >   String lastname;
>      >   String email;
>      >
>      >   // getters and setters
>      > }
>      >
>      > class Customer extends User{
>      >   String address;
>      >   // etc.
>      > }
>      >
>      >
>      > Now if I want to mix those objects in one single dataTable I
>     cannot find
>      > a way to display properties from
>      > customer objects.... the code will break on plain user objects,  and
>      > complains about missing properties.
>      >
>      > I tried using jstl inside the table, but I'm not sure how the 'test'
>      > properties of iterated items in the dataTable...  a simple ${!empty
>      > user.address } doesn't  work.
>      >
>      > Actually, I would prefer to NOT use jstl..... but stick to
>     JSF.... is it
>      > possible with the existing tags?
>      >
>      > regards,
>      >
>      > Peter
> 
> 


Re: inheritance and

Posted by Peter Maas <pf...@gmail.com>.
I understand that this is possible, but how can I test this within a
tableGrid component without jstl?

On 11/24/05, Marius Kreis <ma...@nulldevice.org> wrote:
>
> Hi Peter.
> Perhaps you can check for the class of the object with user.class.name
> I think this should query user.getClass().getName() .... and then you
> can compare it to "User" or "Customer"....
>
> Peter Maas wrote:
> > Hi all,
> >
> > I'm probably missing something obvious, but how can I 'detect' the
> > existence of a property on a bean? I have a managed bean return a list
> > of users, which might can be a plain user or an extended 'customer'
> >
> > class User{
> >   String firstname;
> >   String lastname;
> >   String email;
> >
> >   // getters and setters
> > }
> >
> > class Customer extends User{
> >   String address;
> >   // etc.
> > }
> >
> >
> > Now if I want to mix those objects in one single dataTable I cannot find
> > a way to display properties from
> > customer objects.... the code will break on plain user objects,  and
> > complains about missing properties.
> >
> > I tried using jstl inside the table, but I'm not sure how the 'test'
> > properties of iterated items in the dataTable...  a simple ${!empty
> > user.address} doesn't  work.
> >
> > Actually, I would prefer to NOT use jstl..... but stick to JSF.... is it
> > possible with the existing tags?
> >
> > regards,
> >
> > Peter
>
>

Re: inheritance and

Posted by Marius Kreis <ma...@nulldevice.org>.
Hi Peter.
Perhaps you can check for the class of the object with user.class.name
I think this should query user.getClass().getName() .... and then you 
can compare it to "User" or "Customer"....

Peter Maas wrote:
> Hi all,
> 
> I'm probably missing something obvious, but how can I 'detect' the 
> existence of a property on a bean? I have a managed bean return a list 
> of users, which might can be a plain user or an extended 'customer'
> 
> class User{
>   String firstname;
>   String lastname;
>   String email;
>  
>   // getters and setters
> }
> 
> class Customer extends User{
>   String address;
>   // etc.
> }
> 
> 
> Now if I want to mix those objects in one single dataTable I cannot find 
> a way to display properties from
> customer objects.... the code will break on plain user objects,  and 
> complains about missing properties.
> 
> I tried using jstl inside the table, but I'm not sure how the 'test' 
> properties of iterated items in the dataTable...  a simple ${!empty 
> user.address} doesn't  work.
> 
> Actually, I would prefer to NOT use jstl..... but stick to JSF.... is it 
> possible with the existing tags?
> 
> regards,
> 
> Peter