Adam,
to avoid repeating the page name as string constant, you could use
public static final String NAME =
MyPage.class.getName().replaceAll(".*\\.", "");
or, if you are using Java 1.5
public static final String NAME = MyPage.class.getSimpleName();
> -----Original Message-----
> From: Adam Zimowski [mailto:[EMAIL PROTECTED]
> Sent: Friday, March 03, 2006 9:04 PM
> To: Tapestry users
> Subject: Re: Best Practice: Controlling Page Names
>
> Enums wouldn't work because .toString() would result in a non-constant
> expression.
>
> So let's assume every page has:
>
> public static final String NAME = "page_name as defined in
*.application
> file";
>
> Then:
>
> @InjectPage(Page.NAME)
>
> Is this a clean way to do this?
>
> On 3/3/06, Adam Zimowski <[EMAIL PROTECTED]> wrote:
> > I'd like to hear what you folks would recommend for controlling when
> > referring to pages via their names, such as:
> >
> > @InjectPage("Registration")
> >
> > etc..
> >
> > If I have the same page injected in 20 places, then rename the page
it
> > would be a pain to refactor. Since I'm on JDK 1.5, I'm thinking of
> > creating page enum, and since toString() of an enum is its value it
> > would work rather nicely:
> >
> > public enum EPages { Home, Registration, etc... }
> >
> > @InjectPage(EPages.Registration)
> >
> > Sure, I have one more place to maintain with page names, but I
> > wouldn't mind it comparing to current state of affairs.
> >
> > Or is there even a better way? I'd like to keep injection
annotation
> > because I've come so accustomed to it.
> >
> > Regards,
> > Adam
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]