JSF 2.0でのコメントの使い方
問題
JSF 2.0では、このようなJSFタグをコメントアウトしてください
JSF …
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" > <h:body> <!-- <h:commandButton type="button" value="#{msg.buttonLabel}"/> --> </h:body> </html>
しかし、JSFは依然として値式を処理し、その結果を生成されたHTMLページに出力します。
#\ {msg.buttonLabel}
が “Submit”メッセージを返すと仮定します。
__生成されたHTMLページ…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <!-- <h:commandButton type="button" value="Submit"/> --> </body> </html>
JSFタグを完全にコメントアウトする方法はありますか?値式の処理が行われないか、生成された最終HTMLページに表示されますか?
解決策
JSFタグをコメントアウトするには2つの方法があります:
1. facelets.SKIP__COMMENTS
web.xmlでは、 ”
faceslets.SKIP__COMMENTS
“パラメータを ”
true
“に設定します。
<context-param> <param-name>facelets.SKIP__COMMENTS</param-name> <param-value>true</param-value> </context-param>
JSFは、
<! – >
に含まれるページ内のすべてを削除します。
JSF …
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" > <h:body> <!-- <h:commandButton type="button" value="#{msg.buttonLabel}"/> --> </h:body> </html>
__生成されたHTMLページ…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> </body> </html>
2.ui:remove
または、「
ui:remove
」タグを使用して、削除するコンテンツを定義することもできます。例えば、
JSF
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" > <h:body> <ui:remove> <h:commandButton type="button" value="#{msg.buttonLabel}"/> </ui:remove> </h:body> </html>
__生成されたHTMLページ…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> </body> </html>
ソースコードをダウンロードする
ダウンロードする – リンク://wp-content/uploads/2010/10/JSF-2-Remove-Tag-Example.zip[JSF-2-Remove-Tag-Example.zip](10KB)
リファレンス
“ui:remove” JavaDoc]
リンク://タグ/jsf2/[jsf2]