Thank you for your reply, Thiago! > I think your page is actually a page because it does have an URL and handles requests.
(Sorry for my English) I don't think so. It's a little bit complicated: We've wrote abstract class, which processes"right-click" on grid rows and shows context menu. By clicking one of menu items I pass selected grid items and selected action from context menu to my "page without .tml", which configurates and returns other page or does something with selected items. And now we have about 10 such "pages" (alltogether about 100 pages in project), which configurate something, need tapestry injections and haven't .tml's. They are not pages, components or services and I can't inject they from tapestry's "base" package, so I don't know how to leave my code clean in this case. Sem