On 6/9/05, Eric Knapp <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I am learning JSF and MyFaces this summer. I am looking for a
> best-practice or even just good ideas about something. I have a
> question about selectively displaying components. Here is an example
> of what I mean. I would like to have one page that shows a different
> dataTable depending on the authentication role of a user. A normal
> user would see a general HTML table while an admin user would see more
> columns and maybe an edit button.
>
> Without JSF I would do this with lots of JSTL. What's the best JSF
> way? I have been looking at Tiles too but that doesn't seem to point
> to the future of JSF.
>
A very common approach for selective display of JSF components is to
use a value binding on the "rendered" property (which all components
should be implementing), binding it to a method returning a boolean
that can determine whether this component, and all its children,
should be rendered or not.
Assume you have a session-scoped "user" bean representing the current
user, with an isManager() method that returns boolean. You can
restrict display of salary information in an HR application with
something like this:
<h:outputText value="#{employee.salary}" ... rendered="#{user.manager}" .../>
Craig