我正在使用Netbeans 8.02,它似乎理解它帮助我创建的复合组件。它位于文件夹/resources/ezcomp中(默认Nebean用于此),如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="pobject"
type="test.database.UserItem"
required="true" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
...当我编辑一个页面来使用该组件时,NetBeans将它包含在它的代码完成数据库中,并在类似于此的页面上创建一个xmlns引用。
xmlns:ezcomp="http://xmlns.jcp.org/jsf/composite/ezcomp"问题是,当Mojarra 2.1.6 (Glassfish 3)遇到这种情况时,它会发出一条消息:
Warning: This page calls for XML namespace
http://xmlns.jcp.org/jsf/composite/ezcomp declared with
prefix ezcomp but no taglibrary exists for that namespace.上一次我这么做的时候,网址是java.sun.com,所以我想当我不在的时候,这个行业会继续发展。如果我将URL更改为使用java.sun.com,它将变成Null指针异常。
有人想办法解决这个问题吗?
发布于 2015-06-15 15:37:49
自JSF2.2以来,http://xmlns.jcp.org/jsf/*命名空间是新的。这些警告表明您实际上正在使用JSF2.0/2.1,或者已经将您的项目配置为使用JSF2.0/2.1。
如果您没有使用/针对JSF2.2,那么根本不应该使用JSF2.2引入的命名空间。在JSF2.0/2.1中,XML名称空间是http://java.sun.com/jsf/*,如下所示。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite"
>如果您确信实际使用的是JSF2.2,则需要在项目属性中的某个位置配置目标JSF版本。在Eclipse中,您可以在Project中找到它。下图显示2.0版。那么,您应该将其改为2.2。

如果您不能选择JSF2.2,那么IDE本身很可能需要更新。对于Eclipse,在WTP 3.5中添加了JSF2.2支持,这是Eclipse4.4露娜首先引入的。
另请参阅:
https://stackoverflow.com/questions/30849150
复制相似问题