我在项目中添加了一个常用的JAR。罐子看起来像......
CommonWeb.jar
|-- META-INF
| |-- resources
| | `-- common
| | |-- css
| | | `-- my.css
| | |-- js
| | | `-- my.js
| | |-- images
| | | `-- my.png
| | |-- components
| | | `-- mycomposite.xhtml
| | `-- templates
| | `-- mytemplate.xhtml
| |-- faces-config.xml
| `-- MANIFEST.MF
:
除了Netbeans无法识别我的复合组件外,一切正常。试图使用该组件的页面看起来像这样......
<ui:composition template="/resources/common/templates/mytemplate.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:cmn="http://java.sun.com/jsf/composite/common/components">
<ui:define name="content">
...
<cmn:mycomposite ... />
...
</ui:define>
</ui:composition>
项目将编译运行,不用担心。但是IDE在<cmn:mycomposite ... />
上给了我红色的波浪线并且没有自动完成等等。如果我将组件复制到项目自己的资源文件夹中,它将全部正常工作,所以似乎netbeans只是不希望罐子。
有很多类似问题的问题,例如:
...但没有令人满意的解决方案或解决方法。
此外还有一些netbeans错误报告,但这些似乎都是“固定的”
是否有一些我缺少的配置?有没有人真正设法使用最新版本的NetBeans(编写本文时的NetBeans 7.4补丁2)?有没有人找到一种实际可行的解决方法?
更新
NetBeans 8中继续出现此问题
答案 0 :(得分:0)
此问题仅限IDE问题,并在版本8.1中继续。它源自Netbeans bugzilla中确定的错误 - 特别是在&#34; XFML的JSF编辑器&#34; module(org.netbeans.modules.web.jsf.editor)
我通过下载Netbeans的8.1版源文件并自行应用建议的补丁来解决了这个问题。我猜测它在早期版本中是一个类似的问题,但我没有检查过。
要下载和编译Netbeans,您可以按照&#34;如何&#34;在here
摘要变更:
CompositeComponentModel.java第296行改为:
if (parent != null && parent.getName().equalsIgnoreCase("META-INF")) { //NOI18N
JsfBinaryIndexer.java第74行改为:
namePattern = ".*\\.tld|.*\\.taglib\\.xml|.*\\.xhtml",
第81行增加的索引器版本更改为:
static final int INDEXER_VERSION = 11; //NOI18N
鉴于该bug正在被跟踪,希望它能够进入下一个版本。