我正在使用 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,它会变成空指针异常。
有人对如何解决这个问题有想法吗?
The 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 中你可以找到它项目方面。下图为2.0版本。那么你应该将其更改为 2.2。
如果您无法选择 JSF 2.2,那么 IDE 本身很可能需要更新。对于 Eclipse,在 WTP 3.5 中添加了 JSF 2.2 支持,该支持首先在 Eclipse 4.4 Luna 中引入。
也可以看看:
- JSF 2.2 使用哪个 XML 命名空间 https://stackoverflow.com/questions/31068678/which-xml-namespace-to-use-with-jsf-2-2/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)