JSFのIDあれこれ
JSFで生成されるidあれこれ - Challenge Java EE !
に加えて pass throughを実際に使ってみた実装サンプル
目的は JSFが生成するid
とname
について確認する事。
定義
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> <head> <title>JSF ID</title> </head> <body> <h1>Id</h1> <h:form> <div jsf:id="jsfId" pt:id="ptId10" id="divId"> jsfIdあり、passthroughIdあり、Idあり=passthroughIdが適用 </div> </h:form> <h:form> <div jsf:id="jsfId" id="divId"> jsfIdあり、passthroughIdなし、Idあり=divIdが適用 </div> </h:form> <h:form> <div jsf:id="jsfId"> jsfIdあり、passthroughIdなし、Idなし=jsfIdが適用(ルートは自動生成) </div> </h:form> <p>input type="text"</p> <h:form> <input type="text" jsf:id="jsfId" pt:id="ptId10" id="divId" value="jsfIdあり、passthroughIdあり、Idあり=passthroughIdが適用" style="width:400px" /> </h:form> <h:form> <input type="text" jsf:id="jsfId" id="divId" value="jsfIdあり、passthroughIdなし、Idあり=divIdが適用" style="width:400px" /> </h:form> <h:form> <input type="text" jsf:id="jsfId" value="jsfIdあり、passthroughIdなし、Idなし=jsfIdが適用(ルートは自動生成)" style="width:500px" /> </h:form> <p>h:inputText</p> <h:form> <h:inputText id="jsfId" pt:id="ptId10" value="jsfIdあり、passthroughIdあり=passthroughIdが適用" style="width:400px"/> </h:form> <h:form> <h:inputText id="jsfId" value="jsfIdあり、passthroughIdなし=jsfIdが適用(ルートは自動生成)" style="width:400px" /> </h:form> </body> </html>
生成後のxhtmlのコード
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JSF ID</title> </head> <body> <h1>Id</h1> <form id="j_idt2" name="j_idt2" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt2" value="j_idt2" /> <div id="ptId10"> jsfIdあり、passthroughIdあり、Idあり=passthroughIdが適用 </div> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-0" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <form id="j_idt4" name="j_idt4" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt4" value="j_idt4" /> <div id="divId"> jsfIdあり、passthroughIdなし、Idあり=divIdが適用 </div> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-1" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <form id="j_idt6" name="j_idt6" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt6" value="j_idt6" /> <div id="j_idt6-jsfId"> jsfIdあり、passthroughIdなし、Idなし=jsfIdが適用(ルートは自動生成) </div> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-2" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <p>input type="text"</p> <form id="j_idt9" name="j_idt9" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt9" value="j_idt9" /> <input name="j_idt9-jsfId" style="width:400px" id="ptId10" type="text" value="jsfIdあり、passthroughIdあり、Idあり=passthroughIdが適用" /> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-3" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <form id="j_idt10" name="j_idt10" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt10" value="j_idt10" /> <input name="j_idt10-jsfId" style="width:400px" id="divId" type="text" value="jsfIdあり、passthroughIdなし、Idあり=divIdが適用" /> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-4" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <form id="j_idt11" name="j_idt11" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt11" value="j_idt11" /> <input id="j_idt11-jsfId" name="j_idt11-jsfId" style="width:500px" type="text" value="jsfIdあり、passthroughIdなし、Idなし=jsfIdが適用(ルートは自動生成)" /> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-5" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <p>h:inputText</p> <form id="j_idt13" name="j_idt13" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt13" value="j_idt13" /> <input type="text" name="j_idt13-jsfId" value="jsfIdあり、passthroughIdあり=passthroughIdが適用" style="width:400px" id="ptId10" /> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-6" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> <form id="j_idt14" name="j_idt14" method="post" action="/jsf-id/index.xhtml" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="j_idt14" value="j_idt14" /> <input id="j_idt14-jsfId" type="text" name="j_idt14-jsfId" value="jsfIdあり、passthroughIdなし=jsfIdが適用(ルートは自動生成)" style="width:400px" /> <input type="hidden" name="javax.faces.ViewState" id="j_id1-javax.faces.ViewState-7" value="-6059247821844920063:3663652348388936230" autocomplete="off" /> </form> </body> </html>