我正在使用Netbeans 8.02,它似乎了解它帮助我创建的复合组件。它位于文件夹/ resources / ezcomp(默认的Nebeans使用此文件夹)中,如下所示:
<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.
上次执行此操作时,URL为java.sun.com,所以我想我不在的时候行业还在发展。如果更改URL以使用java.sun.com,它将变成Null指针异常。
有人对如何解决这个问题有想法吗?
http://xmlns.jcp.org/jsf/*
自JSF 2.2起,名称空间是新的。这些警告表明您实际上正在使用JSF 2.0 / 2.1,或者已将项目配置为使用JSF 2.0 / 2.1。
如果您不使用/定位JSF 2.2,则根本不应该使用JSF 2.2引入的名称空间。在JSF 2.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"
>
如果您确定自己确实在使用JSF 2.2,则需要在项目属性中的某个位置配置目标JSF版本。在Eclipse中,您可以在Project Facets中找到它。下图显示了2.0版。然后应将其更改为2.2。
如果您不能选择JSF 2.2,则IDE本身很可能需要更新。在Eclipse的情况下,WTP 3.5中添加了对JSF 2.2的支持,这是Eclipse 4.4 Luna首先引入的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句