0

人々は SWF 2.3.1 で複合コンポーネントを実装できるようですが、これがどのように行われるかについての明確なリファレンスが見つかりません。JSF 複合コンポーネントの基本構造に従っていますが、SWF アプリケーションが taglib 名前空間を認識していないようです。

ツールキット/IDE の警告がありますが、さらに重要なことは、ブラウザに実行時の警告が表示されることです。JSF は次の警告を画面に表示しています。

Warning: This page calls for XML namespace http://java.sun.com/jsf/composite/myjsf declared with prefix mj but no taglibrary exists for that namespace.

コンポーネント定義:

src/main/resources/myjsf/testComponent.xhtml :

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:composite="http://java.sun.com/jsf/composite">

<composite:interface>
    <composite:attribute name="attr" />
</composite:interface>
<composite:implementation>

#{cc.attrs.attr});          

</composite:implementation>
</html>

特定の xhtml で参照:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:mj="http://java.sun.com/jsf/composite/myjsf">

  <!-- snip -->

  <mj:testComponent attr="x" />

</ui:composition>
4

1 に答える 1

5

フォルダーsrc/main/resources/myjsf/は、複合コンポーネントに適した場所ではありません。Maven プロジェクトの複合コンポーネントは にある必要がsrc/main/webapp/resources/あり、あなたの場合はsrc/main/webapp/resources/myjsf/testComponent.xhtml.

webappMaven を使用しているため、フォルダーはコンテンツがアプリケーションのルート フォルダーにデプロイされるフォルダーであることを知っておく必要があります。したがってWebContent、Eclipse の標準の動的 Web プロジェクトのフォルダーと何らかの形で類似しています。

于 2013-02-22T18:30:52.140 に答える