<h:outputLink>
fullworthy HTMLのレンダリング<a>
で適切なURLを持つ要素href
ブックマークGETリクエストを発射属性を。マネージドBeanアクションメソッドを直接呼び出すことはできません。
<h:outputLink value="destination.xhtml">link text</h:outputLink>
<h:commandLink>
HTMLのレンダリング<a>
を持つ要素onclick
(隠された)POSTフォームを送信し、管理対象Beanのアクションメソッドを呼び出すことができるスクリプトを。また、内に配置する必要があります<h:form>
。
<h:form>
<h:commandLink value="link text" action="destination" />
</h:form>
(Post-Redirect-Getパターンに従って)POST後にリダイレクトをトリガーするの?faces-redirect=true
パラメーターは、リンクが実際にクリックされたときにのみターゲットページのブックマーク機能を向上させます(URLはもう「1つ後ろに」ありません)。ですが、要素のを完全なURLに変更しません。まだ残っています。<h:commandLink>
href
<a>
#
<h:form>
<h:commandLink value="link text" action="destination?faces-redirect=true" />
</h:form>
JSF 2.0以降<h:link>
、URLの代わりにビューID(ナビゲーションケースの結果)を取ることができるものもあります。HTML <a>
要素が生成され、同様に適切なURLが含まれhref
ます。
<h:link value="link text" outcome="destination" />
したがって、SOのユーザー名リンクのような純粋でブックマーク可能なページ間ナビゲーションの場合は、<h:outputLink>
またはを使用します<h:link>
。ボットは通常、POSTフォームやJSコードを暗号化しないため、SEOにとっても優れています。また、ページがブックマーク可能になり、URLが「1つ遅れる」ことがなくなるため、UXも改善されます。
必要に応じて、コンストラクター@PostConstruct
で、@RequestScoped
または@ViewScoped
@ManagedBean
問題の宛先ページにアタッチされているor の前処理ジョブを実行できます。@ManagedProperty
または<f:viewParam>
を使用して、GETパラメータをBeanプロパティとして設定できます。
以下も参照してください。
UICommand
コンポーネントのみをコンポーネントに入れる必要がありUIForm
ます。