So I'm trying to create page links using the *PageLinkResource* service
through the *createPageRenderLink* method.

public Link getProbesHealthUrl() {
> return pageLinkSource.createPageRenderLink(ProbesHealth.class);
> }


The page link component in the template is

<t:pagelink page="*prop:probesHealthUrl*">Probes Health</t:pagelink>
>

But an error occurs and shows the following message:

Render queue error in BeginRender[admin/MenuBlocks:pagelink]: Unable to
resolve '/admin/probeshealth' to a known page name.

Although the known tapestry pages are

Page names:
>
>    -
>
>
>    - About
>
>
>    - Contact
>
>
>    - ExceptionReport
>
>
>    - Index
>
>
>    - PageCatalog
>
>
>    - PropertyDisplayBlocks
>
>
>    - PropertyEditBlocks
>
>
>    - ServiceStatus
>
>
>    - admin/MenuBlocks
>
>
>    - *admin/ProbesHealth*
>
>
So the only difference between the identified page and the one I generate
using the *PageLinkResource* service is the preceeding slash */*. So I
tried this instead:

return
> pageLinkSource.createPageRenderLink(ProbesHealth.class).toURI().substring(1);


And returned a string instead and it worked ! I don't think that's the best
way to do this so what am I doing wrong here ?


On Thu, Aug 30, 2012 at 12:57 AM, Bob Harner <bobhar...@gmail.com> wrote:

> Unfortunately, there is a bit of ambiguity in the term "component" as
> used by Tapestry. It can actually mean 2 different things, depending
> on whether you're talking in a specific or general way:
>
> 1) Specific: objects defined by the classes in in your
> {package-name}/components folders
>
> 2) General: objects defined by all those classes under your
> {package-name}/pages, {package-name}/components and
> {package-name}/mixins folders
>
> The documentation intermixes both of these meanings -- probably
> because no one has come up two words that work better than this one
> word.
>
> In the *general* sense (#2), a page *is* a component. In the
> *specific* sense, they are distinct things that are 95% similar, as
> Thiago says.
>
> In my way of thinking (not sure if this is universally agreed upon), a
> component library is just a Tapestry IOC module that contains
> components (that is, components in the "general" sense above).
>
> On Wed, Aug 29, 2012 at 5:00 PM, Thiago H de Paula Figueiredo
> <thiag...@gmail.com> wrote:
> > On Wed, 29 Aug 2012 17:28:06 -0300, Muhammad Gelbana <
> m.gelb...@gmail.com>
> > wrote:
> >
> >> Yes that's true.
> >> Is including pages in a component library not common ?
> >
> >
> > Including pages in a component library is common. And don't forget that
> in
> > Tapestry pages and components are 95% the same. A page is a component
> with
> > URL and activation context, but without parameters and that can't be
> > declared inside other components or pages.
> >
> >
> >> Calling it a "component library" makes it sound like it's only for
> >> components.
> >
> >
> > It's just the shorter name possible. A component library can have pages,
> > components, mixins, resources, etc.
> >
> >
> >> Was modules supported mainly as component libraries ?
> >
> >
> > Absolutely no. Modules are a Tapestry-IoC feature, and Tapestry-IoC
> doesn't
> > know about web apps, not even Tapestry(-core) itself.
> >
> > Pages *are* components. And pages in component libraries is common.
> >
> > --
> > Thiago H. de Paula Figueiredo
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


-- 
*Regards,*
*Muhammad Gelbana
Java Developer*

Reply via email to