[解決済み] h:commandLinkの代わりにh:outputLinkを使うべきですか?
質問
どのような場合に
<h:outputLink>
の代わりに
<h:commandLink>
?
というのはわかりますが
commandLink
は HTTP のポストを生成します。
outputLink
はHTTPのgetを生成すると思います。とはいえ、ほとんどの
JSFチュートリアルの資料
を使用しています。
commandLink
(を使用しています(ほとんど?
コンテキスト。私は、Stack Overflow のようなユーザー ページへのヘッダー リンクを表示する、小さな小さなデモ プロジェクトを実装しています...
...そして、私は、もし
commandLink
(を使用しています(おそらく
?faces-redirect=true
を使用)または
outputLink
が正しい選択です。
どのように解決するのですか?
この
<h:outputLink>
は完全なHTMLをレンダリングします。
<a>
要素に適切な URL を指定します。
href
属性に適切な URL を指定することで、 ブックマーク可能な GET リクエストを発行します。これは、マネージドビーンのアクションメソッドを直接呼び出すことはできません。
<h:outputLink value="destination.xhtml">link text</h:outputLink>
この
<h:commandLink>
は HTML
<a>
要素に
onclick
スクリプトで、(hidden) POST フォームを送信し、マネージドビーンのアクションメソッドを呼び出すことができます。また、このスクリプトは
<h:form>
.
<h:form>
<h:commandLink value="link text" action="destination" />
</h:form>
は
?faces-redirect=true
のパラメータは
<h:commandLink>
で、これは POST の後にリダイレクトを引き起こします (例として
ポスト・リダイレクト・ゲット
パターンに従って)、リンクが実際にクリックされたときにターゲットページのブックマーク可能性を向上させるだけであり(URLはもう"1 behind"ではありません)、これは
href
の
<a>
要素を完全な URL にする必要があります。それはまだ
#
.
<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が「quot;one behind"」でなくなるため、UXも改善されるでしょう。
必要であれば、前処理をコンストラクタまたは
@PostConstruct
の
@RequestScoped
または
@ViewScoped
@ManagedBean
というように、当該目的ページに添付される。を利用することができます。
@ManagedProperty
または
<f:viewParam>
で、GETパラメータをBeanのプロパティとして設定します。
こちらもご覧ください。
関連
-
[解決済み] java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
-
[解決済み] javax.validation.ConstraintViolationException
-
[解決済み] p:dashboardが終了してもソート順を維持する。
-
[解決済み] ビーンスコープを正しく選ぶには?
-
[解決済み] commandButton/commandLink/ajax アクション/リスナーメソッドが呼び出されないか、入力値が設定/更新されない。
-
[解決済み】JSFリソースライブラリは何のためにあり、どのように使用すべきですか?
-
[解決済み】PrimeFacesのprocess/updateとJSFのf:ajax execute/renderの属性を理解する。
-
[解決済み] JSF2 FaceletsでJSTL...意味があるのか?
-
[解決済み] Java EE / JSF で j_security_check を使用してユーザー認証を行う。
-
[解決済み] h:commandLinkの代わりにh:outputLinkを使うべきですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] javax.faces.application.ViewExpiredException: ビューを復元できませんでした
-
[解決済み] javax.validation.ConstraintViolationException
-
[解決済み] actionとactionListenerの違い
-
[解決済み] ビーンスコープを正しく選ぶには?
-
[解決済み】JSF 2.0 Faceletsを使用してXHTMLに別のXHTMLを含めるにはどうすればよいですか?
-
[解決済み】PrimeFacesのprocess/updateとJSFのf:ajax execute/renderの属性を理解する。
-
[解決済み] JSF2 FaceletsでJSTL...意味があるのか?
-
[解決済み] Java EE / JSF で j_security_check を使用してユーザー認証を行う。
-
[解決済み] <f:metadata>、<f:viewParam>、<f:viewAction>は何に使えるのでしょうか?
-
[解決済み] javax.el.PropertyNotFoundException の識別と解決。ターゲットに到達できない