This may be a long shot, considering Tapestry 4.1 hasn't been updated whatsoever since 2007 or '08 or something.. But at work they have an old legacy application which uses Tapestry 4.1.
I was wondering, what is the difference between
<span jwcid="something@If" condition="ognl:something">
and
<span jwcid="@If" condition="ognl:something">
if any? Or has the something
before the @If
no additional purpose than to make it an unique id, which can perhaps be references elsewhere?
Here is some documentation that I've been able to find for Tapestry 4.1, but I'm unable to find an answer for my question:
EDIT: Ok, I've found a partial answer in the documentation I've linked above.
Understanding DirectLink URLs
The URLs generated by the DirectLink component are more complex than those generated by the PageLink component. Let's look at one:
http://localhost:8080/directlink/app?component=%24DirectLink&page=Home&service=direct&session=T
The first query parameter, component, identifies the component within the page. That %24 is "URL-ese" for a dollar sign. In Tapestry, every component ends up with a unique id within its page. If you don't provide one, Tapestry creates one from the component type, prefixed with a dollar sign. Here, our annoynmous DirectLink component was given the id $DirectLink. If you had many different DirectLinks on a page, you'd start seeing component ids such as $DirectLink_0, $DirectLink_1, etc.
You can give a component a shorter and more mneumonic id by putting the desired id before the "@" sign:
<a href="#" jwcid="inc@DirectLink" listener="listener:doClick">increment counter</a>
After making that change to the template, the URL for the DirectLink component is just a bit easier to read:
http://localhost:8080/directlink/app?component=inc&page=Home&service=direct&session=T
But how does this apply to the @If, which doesn't show up in URLs?
As you said, this is just an identifier which Tapestry uses in its component model.
Here's relevant documentation from user guide: Component IDs