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]