composite:interface で、次のような属性を定義しました。
<composite:attribute name="myAttribute" required="true"/>
属性を定義せずに、このように複合コンポーネントを使用すると、次のようになります。
<myTag:myCC/>
エラーが発生することを期待します。そうではありません。何が欠けている可能性がありますか?
composite:interface で、次のような属性を定義しました。
<composite:attribute name="myAttribute" required="true"/>
属性を定義せずに、このように複合コンポーネントを使用すると、次のようになります。
<myTag:myCC/>
エラーが発生することを期待します。そうではありません。何が欠けている可能性がありますか?
Development
これは、JSF プロジェクト ステージが次のように設定されている場合にのみ発生しますweb.xml
。
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
デフォルトはProduction
です。上記のコンテキスト パラメータを設定した後、「開発ミス」に関連する他のいくつかのエラー/警告が表示され始めても驚かないでください。
特定のケースでは、必要な属性を省略すると、ページを開くときに次のような例外が発生するはずです。
javax.faces.view.facelets.TagException: /test.xhtml @22,19 <my:composite> The following attribute(s) are required, but no values have been supplied for them: foo.
at com.sun.faces.facelets.tag.composite.InterfaceHandler.validateComponent(InterfaceHandler.java:232)
at com.sun.faces.facelets.tag.composite.InterfaceHandler.apply(InterfaceHandler.java:125)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
...