問題

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]