Very nice - I'll do that.

I still think it would be nice if Tapestry could check that required
parameters have been set before the page is activated, and if I didn't
have to write that activate() method myself. After all, nothing prevents
callers from activating the page without setting its parameters first.
And considering that the caller most likely will be some other page
written by me, I am not entirely comfortable with that :-)

A nice solution, though - thanks.

Kind Regards
Claus Nielsen


> -----Oprindelig meddelelse-----
> Fra: Andreas Andreou [mailto:[EMAIL PROTECTED]
> Sendt: 18. oktober 2005 14:26
> Til: Tapestry users
> Emne: Re: SV: Required parameter xxx of component Yyyy is not bound
> 
> A solution to what you're describing would be this:
> 
> In your pages that require properties to be set,
> define a method such as
> 
> public void activate(Long userId, Date date, ...)
> {
>     this.setUserId(userId);
>     this.setDate(date);
>     getRequestCycle.activate(this);
> }
> 
> And so, from other pages use this:
> 
> public abstract class MyPage extends BasePage {
> 
>  @InjectPage("AnotherPage")
>  public abstract AnotherPage getAnotherPage();
> 
>  public void doSomething(Long userId, Date date) {
>    AnotherPage anotherPage = getAnotherPage();
>    anotherPage.activate(userId, date);
>  }
> }
> 
> Finally, for yet another solution, you might want to take a look at
> the IExternalPage interface
> and the ExternalLink component.
> 
> 
> 
> Claus Nielsen (BM Data) wrote:
> 
> >Oh, so that's what I'm doing wrong.
> >
> >It _is_ a page, and I _have_ defined parameters on it using
> >@Parameter(required=true).
> >
> >I guess I'll just have to stop doing that - without the annotation it
> >works. It would be nice to have it though. The page has a lot of
> >attributes, and without the @Parameter annotation it isn't obvious
> which
> >fields a caller must set before activating the page.
> >
> >This certainly wasn't the answer I'd hoped for, but thank you very
> much
> >anyway. It certainly saved me from wasting a _lot_ of time digging
> >around for a solution myself.
> >
> >Kind Regards
> >Claus Nielsen
> >
> >
> >
> >>-----Oprindelig meddelelse-----
> >>Fra: Andreas Andreou [mailto:[EMAIL PROTECTED]
> >>Sendt: 18. oktober 2005 12:43
> >>Til: Tapestry users
> >>Emne: Re: Required parameter xxx of component Yyyy is not bound
> >>
> >>In Tapestry, Pages differ from Components in that they don't
> >>have any parameters, nor optional, nor required.
> >>
> >>So, I don't understand why you're getting this problem.
> >>Can you show us the exception stack trace?
> >>Maybe you're trying to activate a Component instead of a Page?
> >>
> >>Claus Nielsen (BM Data) wrote:
> >>
> >>
> >>
> >>>Hi.
> >>>
> >>>How do I make a DirectLink listener in one page activate another
> page
> >>>which has (required) parameters?
> >>>
> >>>I have a page class which looks something like this:
> >>>
> >>>public abstract class MyPage extends BasePage {
> >>>
> >>> @InjectPage("AnotherPage")
> >>> public abstract AnotherPage getAnotherPage();
> >>>
> >>> public IPage doSomething(ParameterForAnotherPage parm) {
> >>>   AnotherPage anotherPage = getAnotherPage(); // Causes exception
> >>>   return anotherPage;
> >>> }
> >>>}
> >>>
> >>>This works if AnotherPage dosn't have any parameters. If it
> requires
> >>>
> >>>
> >>a
> >>
> >>
> >>>parameter I get a org.apache.hivemind.ApplicationRuntimeException
> >>>
> >>>
> >>saying
> >>
> >>
> >>>that "Required parameter xxx of component AnotherPage is not
> bound".
> >>>
> >>>How do I pass / bind a paramter to AnotherPage?
> >>>
> >>>Kind Regards
> >>>Claus Nielsen
> >>>Bonnier Magazine Data A/S
> >>>
> >>>
> >>>-------------------------------------------------------------------
> --
> >>>To unsubscribe, e-mail: tapestry-user-
> [EMAIL PROTECTED]
> >>>For additional commands, e-mail: tapestry-user-
> >>>
> >>>
> >>[EMAIL PROTECTED]
> >>
> >>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>--------------------------------------------------------------------
> -
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: tapestry-user-
> [EMAIL PROTECTED]
> >>
> >>
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: tapestry-user-
> [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to