You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Luther Baker <lu...@gmail.com> on 2009/06/20 13:55:05 UTC

Extending AutoLinkResolver

Is there a programmatic way to override or submit an AutoLink Resolver?

For instance, I'd like to resolve something like <link
href='xxx'differently (e.g.: prepend the app context instead of
prepending
resources/classpath ... to look in the web root directory instead of the
classpath).

    <link href="css/standard.css"/>

becomes

    <link href="/context/css/standard.css"/>

Thanks,

-Luther



    public AutoLinkResolver()
    {
        // register tag reference resolvers
        TagReferenceResolver hrefTagReferenceResolver = new
TagReferenceResolver("href");
        TagReferenceResolver srcTagReferenceResolver = new
TagReferenceResolver("src");
        tagNameToTagReferenceResolvers.put("a", hrefTagReferenceResolver);
        tagNameToTagReferenceResolvers.put("link",
hrefTagReferenceResolver);
        tagNameToTagReferenceResolvers.put("script",
srcTagReferenceResolver);
        tagNameToTagReferenceResolvers.put("img", srcTagReferenceResolver);
        tagNameToTagReferenceResolvers.put("input",
srcTagReferenceResolver);
        tagNameToTagReferenceResolvers.put("embed",
srcTagReferenceResolver);

        // register autolink resolver delegates
        tagNameToAutolinkResolverDelegates.put("a", new
AnchorResolverDelegate());
*        tagNameToAutolinkResolverDelegates.put("link",
            new ResourceReferenceResolverDelegate("href"));*
        ResourceReferenceResolverDelegate srcResRefResolver = new
ResourceReferenceResolverDelegate(
            "src");
        tagNameToAutolinkResolverDelegates.put("script", srcResRefResolver);
        tagNameToAutolinkResolverDelegates.put("img", srcResRefResolver);
        tagNameToAutolinkResolverDelegates.put("input", srcResRefResolver);
        tagNameToAutolinkResolverDelegates.put("embed", srcResRefResolver);
    }

Re: Extending AutoLinkResolver

Posted by Igor Vaynberg <ig...@gmail.com>.
you can write your own tags that do what you want. changing a standard
tag to work differently is a bad idea because it will affect all 3rd
party components you use in your project in unexpected ways.

-igor

On Mon, Jun 22, 2009 at 6:15 AM, Luther Baker<lu...@gmail.com> wrote:
> Thoughts?
> -Luther
>
>
> On Sat, Jun 20, 2009 at 6:55 AM, Luther Baker <lu...@gmail.com> wrote:
>
>> Is there a programmatic way to override or submit an AutoLink Resolver?
>>
>> For instance, I'd like to resolve something like <link href='xxx'differently (e.g.: prepend the app context instead of prepending
>> resources/classpath ... to look in the web root directory instead of the
>> classpath).
>>
>>     <link href="css/standard.css"/>
>>
>> becomes
>>
>>     <link href="/context/css/standard.css"/>
>>
>> Thanks,
>>
>> -Luther
>>
>>
>>
>>     public AutoLinkResolver()
>>     {
>>         // register tag reference resolvers
>>         TagReferenceResolver hrefTagReferenceResolver = new
>> TagReferenceResolver("href");
>>         TagReferenceResolver srcTagReferenceResolver = new
>> TagReferenceResolver("src");
>>         tagNameToTagReferenceResolvers.put("a", hrefTagReferenceResolver);
>>         tagNameToTagReferenceResolvers.put("link",
>> hrefTagReferenceResolver);
>>         tagNameToTagReferenceResolvers.put("script",
>> srcTagReferenceResolver);
>>         tagNameToTagReferenceResolvers.put("img", srcTagReferenceResolver);
>>         tagNameToTagReferenceResolvers.put("input",
>> srcTagReferenceResolver);
>>         tagNameToTagReferenceResolvers.put("embed",
>> srcTagReferenceResolver);
>>
>>         // register autolink resolver delegates
>>         tagNameToAutolinkResolverDelegates.put("a", new
>> AnchorResolverDelegate());
>> *        tagNameToAutolinkResolverDelegates.put("link",
>>             new ResourceReferenceResolverDelegate("href"));*
>>         ResourceReferenceResolverDelegate srcResRefResolver = new
>> ResourceReferenceResolverDelegate(
>>             "src");
>>         tagNameToAutolinkResolverDelegates.put("script",
>> srcResRefResolver);
>>         tagNameToAutolinkResolverDelegates.put("img", srcResRefResolver);
>>         tagNameToAutolinkResolverDelegates.put("input", srcResRefResolver);
>>         tagNameToAutolinkResolverDelegates.put("embed", srcResRefResolver);
>>     }
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Extending AutoLinkResolver

Posted by Luther Baker <lu...@gmail.com>.
Thoughts?
-Luther


On Sat, Jun 20, 2009 at 6:55 AM, Luther Baker <lu...@gmail.com> wrote:

> Is there a programmatic way to override or submit an AutoLink Resolver?
>
> For instance, I'd like to resolve something like <link href='xxx'differently (e.g.: prepend the app context instead of prepending
> resources/classpath ... to look in the web root directory instead of the
> classpath).
>
>     <link href="css/standard.css"/>
>
> becomes
>
>     <link href="/context/css/standard.css"/>
>
> Thanks,
>
> -Luther
>
>
>
>     public AutoLinkResolver()
>     {
>         // register tag reference resolvers
>         TagReferenceResolver hrefTagReferenceResolver = new
> TagReferenceResolver("href");
>         TagReferenceResolver srcTagReferenceResolver = new
> TagReferenceResolver("src");
>         tagNameToTagReferenceResolvers.put("a", hrefTagReferenceResolver);
>         tagNameToTagReferenceResolvers.put("link",
> hrefTagReferenceResolver);
>         tagNameToTagReferenceResolvers.put("script",
> srcTagReferenceResolver);
>         tagNameToTagReferenceResolvers.put("img", srcTagReferenceResolver);
>         tagNameToTagReferenceResolvers.put("input",
> srcTagReferenceResolver);
>         tagNameToTagReferenceResolvers.put("embed",
> srcTagReferenceResolver);
>
>         // register autolink resolver delegates
>         tagNameToAutolinkResolverDelegates.put("a", new
> AnchorResolverDelegate());
> *        tagNameToAutolinkResolverDelegates.put("link",
>             new ResourceReferenceResolverDelegate("href"));*
>         ResourceReferenceResolverDelegate srcResRefResolver = new
> ResourceReferenceResolverDelegate(
>             "src");
>         tagNameToAutolinkResolverDelegates.put("script",
> srcResRefResolver);
>         tagNameToAutolinkResolverDelegates.put("img", srcResRefResolver);
>         tagNameToAutolinkResolverDelegates.put("input", srcResRefResolver);
>         tagNameToAutolinkResolverDelegates.put("embed", srcResRefResolver);
>     }
>