2017-05-11 5 views
1

xhtmlビューで使用されるカスタムコンポーネントを作成しました。Netbeans8.1とglassfish4.1を使用してJSF 2.1で属性値を取得し、それを(以下のコードでhelloworldのように)印刷します。 UIComponentBaseオーバーライドされたファミリを拡張し、UIComponentELTagをオーバーライドするcomponentTypeメソッドとrendererTypeメソッドを拡張することによって、beginコンポーネントとcustomコンポーネントのタグクラスをエンコードしてカスタムコンポーネントを作成しました。私はtest.taglib.xml用のタグライブラリを定義し、web.xmlに登録しました。JSF2カスタムコンポーネントの問題

以下はビューコードです。

<?xml version='1.0' encoding='UTF-8' ?> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml" 
 
     xmlns:h="http://xmlns.jcp.org/jsf/html"> 
 
<h:body> 
 

 
    <h2>JSF Custom Input FacesComponent Example</h2> 
 
    <h:form> 
 
     <ui:composition 
 
        xmlns:custom="http://packt.net/cookbook/components" 
 
         xmlns:ui="http://java.sun.com/jsf/facelets"> 
 
      <custom:testInput helloworld="test component!!"/> 
 
     </ui:composition> 
 
    </h:form> 
 

 
</h:body> 
 
</html>

問題がある - それはHTMLのみ値を表示し、カスタムコンポーネントの属性値が表示されていません。

jspビュー(tldファイルを使用)を試したときと同じサンプルが動作します。

私はカスタムコンポーネントタグを直接使用するか、ui:compositionの子として使用してみましたが、運はありませんでした。

私はカスタムコンポーネントにブレークポイントを置き、デバッグしようとしましたが、コントロールはブレークポイントにも行きません。

コントロールがブレークポイントにならないので、私のカスタムコンポーネントがサーブレットに登録されていないということですか?もしそうなら、私が間違っていることを教えてください。

私はJSFの新機能ですので、何か不足している場合は教えてください。

JSF2.2.7でも同じことを試みましたが、同じ問題が発生しています。

答えて

0

根本原因を見つけることができませんが、私の問題が解決しました。 JSF 2.2.7 jarで同じコードを試しましたが、代わりに注釈を使用しました。 2.2.7で動作しなかったという問題で述べたように、古いファッションコードを使用していたので、taglibを作成してデプロイメント記述子で更新するようになっていました。

関連する問題