似乎人们能够在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>
答案 0 :(得分:5)
文件夹src/main/resources/myjsf/
不适用于您的复合组件。 maven项目中的复合组件应位于src/main/webapp/resources/
,在您的情况下,它应为src/main/webapp/resources/myjsf/testComponent.xhtml
。
当您使用Maven时,您应该知道webapp
文件夹是其内容将部署在应用程序的根文件夹中的文件夹,因此它在某种程度上类似于标准动态Web项目中的WebContent
文件夹在Eclipse中。