JSF(facelets)IDE代码完成

时间:2010-11-17 09:02:17

标签: java jsf netbeans facelets

我尝试创建新的Facelets(JSF 1.2)组件(使用Java代码)。该组件工作正常,但问题是,我的IDE(Netbeans 6.9.1)中的属性没有代码完成ihis标记。我想,我错过了配置的一些部分(在普通的JSF中有属性的标签,但我还没有找到它们用于facelets配置)....


组件:

public class MenuUIComponent extends UIComponentBase {
    public void encodeBegin(FacesContext context) throws IOException {
        // ...
    }
}

Faces config:

<component>
    <component-type>flexibla2.menu</component-type>
    <component-class>cz.flexibla2.client.component.MenuUIComponent</component-class>
</component>

我的taglib(flexibla2.taglib.xml)

<facelet-taglib>
    <namespace>http://flexibla2/taglib</namespace>
    <tag>
        <tag-name>menu</tag-name>
        <component>
            <component-type>flexibla2.menu</component-type>
        </component>
    </tag>
</facelet-taglib>

Web xml

<context-param>
    <param-name>facelets.LIBRARIES</param-name>
    <param-value>/WEB-INF/flexibla2.taglib.xml</param-value>
</context-param>

当我尝试打电话使用我的组件时

<flexibla2:menu root="#{clientPageBean.rootCategory}" />

属性root是IDE的市场未知(红色uderscored),错误消息:“属性root未在组件的界面中定义”

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

目前似乎并不是一个简单的解决方案。所有主要组件似乎都是这样做的,简直就是&#39;除了taglib.xml之外,还提供一个旧的.tld文件。

SeamFaces建议通过注释直接在组件上声明这些标记属性。见http://seamframework.org/Seam3/FacesModule。现在,这对任何人都没有帮助,但如果您对此功能感兴趣,可以在论坛上表达您的兴趣。