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]