Using JSF h:outputLink to produce a page anchor

2019-02-12 23:59发布

问题:

Simple question:

How do you create an HTML anchor like

<a id="organization" />

with JSF, e.g.

<h:outputLink ... />

or another JSF link component? Is it possible at all?

回答1:

You could use <h:link> for that. Its id attribute becomes the <a id> and <a name>.

<h:link id="organization" value="Organization" fragment="organization" />

It generates the following HTML:

<a id="organization" name="organization" href="/currentcontext/currentpage.xhtml#organization">Organization</a>

But just using plain <a> or even <span> or <div> is perfectly legal in JSF/HTML as jump targets.

<span id="organization">Organization</span>

In order to create a link which jumps to that, use <h:link fragment> without id:

<h:link value="Jump to organization" fragment="organization" />

The generated HTML will look like this:

<a href="/currentcontext/currentpage.xhtml#organization">Jump to organization</a>


回答2:

Why not use

<h:outputLink value="www.yourweb/somePage#anchor" />

or if its on the same page just

<h:outputLink value="#anchor" />    


回答3:

<h:link value="test" outcome="icerik">
    <f:param name="id" value="#{icerik.id}" />
</h:link>

This links to icerik.xhtml?id=2 and seems like <a href="icerik.xhtml.?id=2">test</a>