John Munsch
John Munsch

Reputation: 19528

How do I get Seam URLs resolved in the back end?

We've got the first of many pages that are going to be generated not by Seam but by FreeMarker. FreeMarker has no way to process an <s:link> but we need to have links within the page that link over to Seam pages within the same application.

What I would like to be able to do is process what would be expressed as the s:link's view="/something.xhtml" or action="#{testClass.test}" from the back end so I could get a URL out, put it into the hash for FreeMarker, and FreeMarker can just insert it into the page just like any other text.

The question is, how do I do that? What Seam functions would I use to do that conversion?

Alternatively, if your answer is, "read the source stupid," please tell me where I should be looking for the source that powers the tag. I thought of that myself but due to my unfamiliarity with Seam, JSF, etc. I haven't been able to figure out where I should be looking.

Upvotes: 0

Views: 602

Answers (1)

Stefano Travelli
Stefano Travelli

Reputation: 1927

This is quite hard, I think. The logic you are looking for is sparse in several classes and the final html that comes out from s:link depends on what happens during the entire JSF render response phase.

Most of the code that defines how action and view attributes are rendered is in org.jboss.seam.ui.component.UISeamCommandBase. I suggest that you start putting some breakpoint in the getUrl() method of this class.

Hope this helps.

Upvotes: 1

Related Questions