You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Cedric Dumoulin <ce...@lifl.fr> on 2002/04/04 12:35:29 UTC

Re: Tiles, definitions and roles

  Both definitions have the same name, so one override the other ;-(.
  Don't forget that definitions are stored with their names as the key.

    Cedric

"Struts Newsgroup (@Basebeans.com)" wrote:

> Subject: Tiles, definitions and roles
> From: "Matt Raible" <ma...@icsynergy.com>
>  ===
> I have the following 2 definitions that are defined in separate
> tiles-config.xml files:
>
>  <!-- Main Menu -->
>  <definition name="mainMenu" extends="baseLayout" role="Administrator">
>   <put name="title.key" value="mainMenu.title"/>
>   <put name="heading.key" value="mainMenu.heading"/>
>   <put name="menu" value="menu.manager"/>
>   <put name="content" value="/pages/mainMenu.jsp"/>
>  </definition>
>
>  <definition name="mainMenu" extends="loginLayout" role="Learner">
>   <put name="title.key" value="viewer.mainMenu.title"/>
>         <put name="stylesheet" value="/styles/viewer.css"/>
>         <put name="heading.key" value="viewer.mainMenu.heading"/>
>   <put name="content" value="/viewer/mainMenu.jsp"/>
>  </definition>
>
> When I login as an Administrator, with request.isUserInRole("Administrator")
> == true, I still get the second definition inserted.
>
> Any ideas?
>
> Thanks,
>
> Matt
>
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: Tiles, definitions and roles

Posted by "Wellie W. Chao" <wc...@caraveltech.com>.
I had the same issue with certain pages (e.g. a change password page that
applies to three different roles). The way I solved it was to put the
role="{x}" restrictions in the put tags like so:

<definition name="mainMenu" extends="rootLayout">
  <put name="title.key" value="mainMenu.title" role="Administrator"/>
  <put name="title.key" value="viewer.mainMenu.title" role="Learner"/>
  <put name="stylesheet" value="/styles/viewer.css" role="Learner"/>
  <put name="heading.key" value="mainMenu.heading" role="Administrator"/>
  <put name="heading.key" value="viewer.mainMenu.heading" role="Learner"/>
  <put name="menu" value="menu.manager" role="Administrator"/>
  <put name="content" value="/pages/mainMenu.jsp" role="Administrator"/>
  <put name="content" value="/viewer/mainMenu.jsp" role="Learner"/>
</definition>

You end up having to extend a page at a higher level in the inheritance
hierarchy (or to specify the definition from scratch), but that's the price
you pay for reuse of the underlying page.

-----Original Message-----
From: Cedric Dumoulin [mailto:cedric.dumoulin@lifl.fr]
Sent: Thursday, April 04, 2002 5:35 AM
To: Struts Users Mailing List
Subject: Re: Tiles, definitions and roles



  Both definitions have the same name, so one override the other ;-(.
  Don't forget that definitions are stored with their names as the key.

    Cedric

"Struts Newsgroup (@Basebeans.com)" wrote:

> Subject: Tiles, definitions and roles
> From: "Matt Raible" <ma...@icsynergy.com>
>  ===
> I have the following 2 definitions that are defined in separate
> tiles-config.xml files:
>
>  <!-- Main Menu -->
>  <definition name="mainMenu" extends="baseLayout" role="Administrator">
>   <put name="title.key" value="mainMenu.title"/>
>   <put name="heading.key" value="mainMenu.heading"/>
>   <put name="menu" value="menu.manager"/>
>   <put name="content" value="/pages/mainMenu.jsp"/>
>  </definition>
>
>  <definition name="mainMenu" extends="loginLayout" role="Learner">
>   <put name="title.key" value="viewer.mainMenu.title"/>
>         <put name="stylesheet" value="/styles/viewer.css"/>
>         <put name="heading.key" value="viewer.mainMenu.heading"/>
>   <put name="content" value="/viewer/mainMenu.jsp"/>
>  </definition>
>
> When I login as an Administrator, with
request.isUserInRole("Administrator")
> == true, I still get the second definition inserted.
>
> Any ideas?
>
> Thanks,
>
> Matt
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>