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]