Put this in your components directory and it will override Tapestry's PageLink component unless your classes import the corelib type.
(I'll submit a JIRA.) Cheers, Nick. // Copyright 2007 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package yourapp.components; import java.util.List; import org.apache.tapestry.ClientElement; import org.apache.tapestry.ComponentResources; import org.apache.tapestry.Link; import org.apache.tapestry.MarkupWriter; import org.apache.tapestry.PageRenderSupport; import org.apache.tapestry.annotations.Environmental; import org.apache.tapestry.annotations.Inject; import org.apache.tapestry.annotations.Parameter; import org.apache.tapestry.annotations.SupportsInformalParameters; /** * Generates a render request link to some other page in the application. If an activation * context is supplied (as the context parameter), then the context values will be encoded into * the URL. If no context is supplied, then the target page itself will supply the context via a * passivate event. * <p> * Pages are not required to have an activation context. When a page does have an activation * context, the value typically represents the identity of some object displayed or otherwise * manipulated by the page. */ @SupportsInformalParameters public class PageLink implements ClientElement { /** The logical name of the page to link to. */ @Parameter(required = true, defaultPrefix = "literal") private String _page; @Inject private ComponentResources _resources; @Environmental private PageRenderSupport _support; /** * If true, then then no link element is rendered (and no informal parameters as well). The * body is, however, still rendered. */ @Parameter("false") private boolean _disabled; private String _clientId; /** * If provided, this is the activation context for the target page (the information will be * encoded into the URL). If not provided, then the target page will provide its own * activation context. */ @Parameter private List _context; private final Object[] _emptyContext = new Object[0]; void beginRender(MarkupWriter writer) { if (_disabled) return; _clientId = _support.allocateClientId(_resources.getId()); Object[] activationContext = _context != null ? _context.toArray() : _emptyContext; Link link = _resources.createPageLink(_page, _resources.isBound("context"), activationContext); writer.element("a", "href", link, "id", _clientId); _resources.renderInformalParameters(writer); } void afterRender(MarkupWriter writer) { if (_disabled) return; writer.end(); // <a> } public String getClientId() { return _clientId; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]