読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

JSFで自動生成されるidの区切り文字(コロン)を変える設定

JSF

今日(もう昨日?)のJJUG CCCで@den2snさんの発表聞いていた中で、jQueryJSFの相性が悪い理由の1つにJSFが生成するidに「:」コロンが入る、というのがありました。

前に何かで、この区切り文字を変える話を読んだなー…と思ってググったら、当時読んだのとは違いましたが、ありました。

Is it possible to change the element id separator in JSF?

一応簡単な例で確認してみました。

xhtml

<h:body>
    <h:form id="frm">
        <h:commandButton id="btn" value="送信"/>
    </h:form>
</h:body>

と定義します。実行結果は単純に以下のようになります。

f:id:kikutaro777:20131109231901j:plain

HTMLのソースみると「id="frm:btn"」とあります。

f:id:kikutaro777:20131109231807j:plain

フォーム「frm」の中にあるボタン「btn」なのでJSFによって「frm:btn」というidで生成されています。

このコロンを他に変えたい場合は、web.xmlにて

<context-param>
    <param-name>javax.faces.SEPARATOR_CHAR</param-name>
    <param-value>-</param-value>
</context-param>

と定義すればOKです。上記では「-」ハイフンで区切りました。実行してソースをみると

f:id:kikutaro777:20131109231614j:plain

となります。使えるかどうかは置いておいて、こういう設定もありますというだけですが(^^;

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村