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]