代码之家  ›  专栏  ›  技术社区  ›  malejpavouk

JSF(Facelets)IDE代码完成

  •  4
  • malejpavouk  · 技术社区  · 15 年前

    我尝试创建新的FACELLET(JSF 1.2)组件(使用Java代码)。该组件工作得很好,但问题是,在我的ihis标记的IDE(netbeans 6.9.1)中,没有对属性的代码完成。我认为,我缺少配置的某些部分(在普通的JSF中,有属性标签,但在facelets配置中没有找到它们)。


    组件:

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

    人脸配置:

    <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}" />
    

    属性根由IDE作为未知(红色uderscored)进行市场营销,并显示错误消息:“属性根未在组件的接口中定义。”

    谢谢你的帮助。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Arjan Tijms Mike Van    15 年前

    目前似乎没有一个简单的解决办法。所有主要组件集似乎都是这样做的,除了taglib.xml文件之外,“简单”地提供一个旧的.tld文件。

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

    推荐文章