開発者ドキュメント

JSF 2リンク、commandLinkおよびoutputLinkの例

JSFでは、

<h:link/>



<h:commandLink/>

および

<h:outputLink/>

タグはHTML “a”アンカー要素をレンダリングするために使用されます。それら。

1. JSF h:リンクの例



h:link

“タグはJSF 2.0の新しいタグで、 ”

value

“属性はアンカーテキストとしてレンダリングされ、 ”

outcome

“属性はHTML ”

href

“属性。例を参照してください。

{空} 1。リンク “結果”

…​.//JSF
<h:link value=”Login page” outcome=”login”/>
<a href=”/JavaServerFaces/faces/login.xhtml”>Login page</a>

{空} 2。リンク "結果"パラメータメーター

....//JSF
<h:link value="Login page + Param " outcome="login" >
    <f:param name="username" value="mkyong"/>
</h:link>
//HTML output
<a href="/JavaServerFaces/faces/login.xhtml?username=mkyong">Login page + Param</a>

{空} 3。リンク+「結果」+画像

…​.//JSF
<h:link outcome=”login” >
<h:graphicImage library=”images” name=”sofa.png”/>
</h:link>
<a href=”/JavaServerFaces/faces/login.xhtml”>
<img src=”/JavaServerFaces/faces/javax.faces.resource/sofa.png?ln=images”/>
</a>

===  2. JSF h:commandLinkの例

「**  h:commandLink ** 」タグはJSF 1.xからリリースされています。これは、クリックすると送信ボタンのような動作をします。 "**  value ** "属性はアンカーテキストとしてレンダリングされ、 "**  action ** "属性はHTML "**  href ** "属性のターゲットURLとして決定されます。さらに、「h:commandLink」はページに「**  jsf.js ** 」ファイルを含み、生成されたリンクに「onclick」イベントを添付します。例を参照してください:

** 注意**  "**  j__idtx ** "は、JSFによって生成されるランダム値です。

{空} 1。 commandLink

....//JSF
<h:commandLink value="Login page"/>
//HTML output
<script type="text/javascript"
 src="/JavaServerFaces/faces/javax.faces.resource/jsf.js?ln=javax.faces&stage=Development">
</script>

<a href="#"
    onclick="mojarra.jsfcljs(document.getElementById('j__idt6'),
        {'j__idt6:j__idt16':'j__idt6:j__idt16'},'');
    return false">
    Login page
</a>

__P.S ”

action

“属性が省略されている場合、ボタンがクリックされている間、現在のページがリロードされます。

{空} 2。 commandLinkアクション

…​.//JSF
<h:commandLink action=”#{user.goLoginPage}” value=”Login page”/>
<script type=”text/javascript”
src=”/JavaServerFaces/faces/javax.faces.resource/jsf.js?ln=javax.faces&stage=Development”>
</script>

<a href=”#”
onclick=”mojarra.jsfcljs(document.getElementById(‘j

idt6′),
{‘j

idt6:j

idt18′:’j

idt6:j__idt18′},”);
return false”>
Login page
</a>

__P.S HTML出力でアクション値を見つけることさえできません。JSFだけがどこに行くのか知っています。

{空} 3。 commandLinkアクションパラメータ

....//JSF
<h:commandLink action="#{user.goLoginPage}" value="Login page + Param ">
    <f:param name="username" value="mkyong"/>
</h:commandLink>
//HTML output
<script type="text/javascript"
 src="/JavaServerFaces/faces/javax.faces.resource/jsf.js?ln=javax.faces&stage=Development">
</script>

<a href="#"
    onclick="mojarra.jsfcljs(document.getElementById('j__idt6'),
    {'j__idt6:j__idt20':'j__idt6:j__idt20','username':'mkyong'},'');
    return false">
    Login page + Param
</a>

{空} 4。コマンドリンクアクションイメージ

…​.//JSF
<h:commandLink action=”#{user.goLoginPage}”>
<h:graphicImage library=”images” name=”sofa.png”/>
</h:commandLink>
<script type=”text/javascript”
src=”/JavaServerFaces/faces/javax.faces.resource/jsf.js?ln=javax.faces&stage=Development”>
</script>

<a href=”#”
onclick=”mojarra.jsfcljs(document.getElementById(‘j

idt6′),
{‘j

idt6:j

idt23′:’j

idt6:j__idt23′},”);
return false”>
<img src=”/JavaServerFaces/faces/javax.faces.resource/sofa.png?ln=images”/>
</a>

===  3. JSF h:outputLinkの例

JSF 1.xでは "**  h:outputLink ** "タグがリリースされ、タグ本体がアンカーテキストとしてレンダリングされ、 "**  value ** "属性はHTML "**  href ** "属性の値として直接レンダリングされます、例を見てください:

{空} 1。 outputLink

....//JSF
<h:outputLink>Login page</h:outputLink>
//HTML output
<a href="currentpage.xhtml">Login page</a>

__P.S ”

value

“属性を省略すると、現在のページURLを “href”属性の値にします。

{空} 2。 outputLink “value”

…​.//JSF
<h:outputLink value=”login.xhtml” >
Login page
</h:outputLink>
<a href=”login.xhtml”>
Login page
</a>

{空} 3。 outputLink + "value" + outputText +パラメータ

....//JSF
<h:outputLink value="login.xhtml">
    <h:outputText value="Login page"/>
    <f:param name="username" value="mkyong"/>
</h:outputLink>
//HTML output
<a href="login.xhtml?username=mkyong">Login page</a>

{空} 4。 outputLink “value” outputTextイメージ

…​.//JSF
<h:outputLink value=”login.xhtml”>
<h:graphicImage library=”images” name=”sofa.png”/>
</h:outputLink>
<a href=”login.xhtml”>
<img src=”/JavaServerFaces/faces/javax.faces.resource/sofa.png?ln=images”/>
</a>

=== 私の考え...

上記の3つのリンクタグのいくつかのレビュー:

.  "**  h:link ** "タグは、リンクを生成するのに便利です.

JSFの「結果」と対話しますが、「アクション」のサポートがないと、動的な結果を生成することが難しくなります。

.  "**  h:commandLink ** "タグはsuck、生成されたJavaScriptは本当に

怖い!このタグを使用することをお勧めします。しかし、 "**  h:link ** "には欠けている "**  action ** "属性がサポートされています。

.  "**  h:outputLink ** "は、リンクを生成するのに便利です.

JSFプログラム自体と対話する必要があります。

最後に、 "**  h:link ** "属性に "**  action ** "属性を追加すれば完璧です。

=== ソースコードをダウンロードする

ダウンロード - リンク://wp-content/uploads/2010/10/JSF-2-link-commandLink-outputLink-Example.zip[JSF-2-link-commandLink-outputLink-Example.zip](15KB)

===== リファレンス

.  https://javaserverfaces.dev.java.net/nonav/docs/2.0/pdldocs/facelets/h/link.html[JSF

<h:link/> JavaDoc]。 https://javaserverfaces.dev.java.net/nonav/docs/2.0/pdldocs/facelets/h/commandLink.html[JSF

<h:commandLink/> JavaDoc]。 https://javaserverfaces.dev.java.net/nonav/docs/2.0/pdldocs/facelets/h/outputLink.html[JSF

<h:outputLink/> JavaDoc]

link://tag/jsf2/[jsf2]link://タグ/link/[link]
モバイルバージョンを終了