0

我正在寻找如何在 JSF 中定义自定义组件。根据 Java EE 教程,任何自定义组件都需要在 taglib 中进行描述。当我查看 PrimeFaces 源时,我找不到任何标记库文件或任何提示,其中命名空间被绑定并且可用组件被定义。我正在将 primefaces jar 添加到我的依赖项中,添加

xmlns:p="http://primefaces.org/ui

到 xml 命名空间,在我的页面上定义一些 primfaces 组件,它可以工作......

好的,但是我既不能在源代码包或二进制包中找到相关的 taglib,我的 IDE(IntelliJ)也无法找到“xmlns:p="http://primefaces.org/ui" 指向的位置。因此,代码完成也是不可能的。(找到所有其他 mojarra 标签库。)

PrimeFaces 是否有可能直接在 Java 类中通过注释定义标记库,还是在运行时生成它?我可以很容易地找到 UIComponents,primefaces 在其源代码中定义,但似乎缺少 taglib 的配置。我确定我只是不知道 PrimeFaces 是如何做到的,但是 javaeetutorial 没有描述任何其他机会,而不是定义一个 ...-taglib.xml

4

2 回答 2

1

好的,我发现配置是通过构建生成的,但是源的下载不包含构建脚本。

通过 github,我找到了答案,它是在构建期间创建的(通过 maven)

https://github.com/primefaces/primefaces/blob/master/pom.xml

于 2013-10-25T12:44:11.330 回答
1

PrimeFaces 是否有可能直接在 Java 类中通过注释定义标记库,还是在运行时生成它?[...] 除了定义 ...-taglib.xml 之外,javaeetutorial 没有描述任何其他机会

由于 PrimeFaces 4 与 JSF 2.2 兼容,理论上它可以做到这一点。也就是说,在 JSF 2.2/Java EE 7 中,确实可以通过注释直接定义 Facelets 标记。有关此的更多详细信息,请参见:http ://arjan-tijms.omnifaces.org/p/jsf-22.html#594

由于 PrimeFaces 4 仍然与 JSF 2.1/2.0 兼容,因此它们似乎还没有像您在此期间发现的那样做到这一点。

于 2013-10-26T09:49:38.320 回答