Yeah, I had the same issue. I resolved it by creating my own version of the
BaseTagWriter and then referencing that in hivemind...see the notes below.

/**
 * Using the Tapestry shell component will construct and write a base
 * tag to the rendered html output. Doing so makes all the links within
 * the page relative to this tag. This ultimately breaks any inline anchor
 * tags. The solution is this class, which essentially does not write the
 * tag at all. Writing the base tag is a configurable Hivemind service,
 * therefore, to configure your Tapestry application you must tell Hivemind
 * to use this class as the base tag rendering service:
 *
 *  <implementation service-id="tapestry.url.BaseTagWriter">
 *      <create-instance class="
com.expd.app.expo2.tapestry.components.EmptyBaseTagWriter"/>
 *    </implementation>
 *
 * @author
 *
 */
public class EmptyBaseTagWriter implements IRender {

    /**
     * This prevents rendering of the any base tag.
     */
    public void render(IMarkupWriter writer, IRequestCycle cycle)
    {
        IPage page = cycle.getPage();
        StringBuffer sb = new StringBuffer();
        sb.append("/");
        if(page.getNamespace().getId() == null)
        {
            String name = page.getPageName();
            int slashx = name.lastIndexOf('/');
            if(slashx > 0)
                sb.append(name.substring(0, slashx + 1));
        }
    }

}

On 2/2/06, Chris Norris <[EMAIL PROTECTED]> wrote:
>
> I'd like to use my own implementation of BaseTagWriter that does nothing.
> This is so that relative anchor tag links work like our designers are used
> to in static html pages.  I've tried overriding the Shell class to do
> everything but write the base tag, and everything works fine (our html
> templates are all in the servlet root).  But that's hackish and ugly.  Is
> there a hivemind way to do this?  I'm sure there is but it's not jumping
> out
> at me.
>
> Thanks,
> Chris
>
>

Reply via email to