相关疑难解决方法(0)

组件系列,组件类型和渲染器类型之间的关系是什么?

当我在JSF中学习自定义组件开发时,我对组件系列,组件类型和渲染器类型之间的关系感到困惑.例如,我注册了一个渲染器和一个自定义组件,如下所示.

faces-config.xml:

<component>
    <component-type>study.faces.Div</component-type>
    <component-class>javax.faces.component.UIPanel</component-class>
</component>

<render-kit>
    <render-kit-id>HTML_BASIC</render-kit-id>
    <renderer>
        <component-family>javax.faces.Panel</component-family>
        <renderer-type>study.faces.DivRenderer</renderer-type>
        <renderer-class>com.study.ui.DivRenderer</renderer-class>
    </renderer>
</render-kit>
Run Code Online (Sandbox Code Playgroud)

我还在my.taglib.xml文件中注册了一个新标签,如下所示:

<tag>
    <tag-name>div</tag-name>
    <component>
        <component-type>study.faces.Div</component-type>
        <renderer-type>study.faces.DivRenderer</renderer-type>
    </component>
</tag>
Run Code Online (Sandbox Code Playgroud)

这种配置非常有效.但是,我不明白为什么<component-family>javax.faces.Panel</component-family>在渲染器注册时需要该行.在my.taglib.xml,组件和渲染器是连接的,恕我直言,它应该足以为组件选择合适的渲染器.附加参数的用途是什么<component-family>

我做了谷歌研究,我得到的所有答案都说"一个渲染器可以用来渲染多个组件.这些组件属于一个系列".但这些陈述并没有明确我的困惑.有人可以解释组件类型,组件系列和渲染器选择策略之间的关系吗?(希望有一个很好的例子.)

java jsf renderer java-ee custom-component

22
推荐指数
1
解决办法
8413
查看次数

如何查找JSF组件的component-family和renderer-type

如何找到JSF组件的组件系列和(默认)渲染器类型?

使用以下注释(覆盖自定义渲染器)时,这些信息是必需的:

@FacesRenderer(componentFamily="",rendererType="")
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了JSF规范和Ed Burn的书,但找不到我想要的东西.

jsf renderer

4
推荐指数
1
解决办法
5905
查看次数

标签 统计

jsf ×2

renderer ×2

custom-component ×1

java ×1

java-ee ×1