JSF では、name 属性は、jsf コンポーネントの 'id' 属性とフォームの 'id' 属性の組み合わせに基づいて計算されます。この理由はBalusCによって説明されてい ます。したがって、JSF コンポーネントの ID を指定すると、その名前も計算されます。
とにかく、<a>
タグの name 属性の HTML5 使用を開始することは廃止され、代わりに、最も近いコンテナーの id 属性を使用することをお勧めします。そのため、name 属性に依存しないでください。
これらのいずれかに焦点を当てることはできますが:
<h2 id="top4">This is a heading</h2> or
<h2><a id="top4">This is a heading</a></h2>
または、次のようにコンテナをターゲット ページにフォーカスするだけです。
HTML 4.01 では
<div id="top4">
<h2>This is a heading</h2>
<p>This is a paragraph</p>
</div>
HTML5 では
<article id="top4">
<h2>This is a heading</h2>
<p>This is a paragraph</p>
</article>
JSF では、コンテナをターゲット ページにフォーカスする方法は次のとおりです。
結果が別のページであるが、同じアプリケーション内にある場合:
<h:link id="link1" value="link1" outcome="welcome" fragment="top4" />
ここで、結果は、コンテキスト ルートに相対的なwelcome.xhtml であり、「top4」は、ターゲット ページがレンダリングされるときにフォーカスされるコンテナーの ID です。
外部サイトをリンクする場合:
<h:outputLink id="link2" value="http://www.msn.com/#spotlight">link2</h:outputLink>
同じページ内:
<h:link id="link3" value="link3" fragment="top4" />
ここでは結果が指定されていないため、結果は同じページになります。
以下も参照してください。