为UI组件创建自定义标记库

时间:2014-02-11 23:34:47

标签: jsf taglib

我正在创建自定义标记库,其中嵌入了核心JSF UI组件,这将基本上呈现UI组件,并为不提供的组件添加行为。例如,我有像这样的Tablib ST.xhtml文件

<ui:composition>
    <h:inputText id="#{id}" value="#{value.ST.value}" rendered="#{readonly!='true'}" style="#{style}" required="#{required}" requiredMessage="#{requiredMessage}" /><br/>
    <h:panelGroup id="#{id}Error" style="display:none;color:#EE0000;font-style:italic;" >
        x
    </h:panelGroup>
    <h:outputText value="#{value.ST.value}" rendered="#{readonly=='true'}" />
</ui:composition>

这用于在页面上创建HTML输入文本字段。使用此组件的代码将如下所示

<trim:ST value="#{myBean.property}" style="color:red"/>

如果我想从我的JSF页面为底层UI组件设置新属性,那么这种方法效果不佳。例如,如果我想向h:inputText添加onclick事件处理程序,我必须更改taglib定义以从调用者设置属性。我不喜欢这种方法,因为我必须在taglib中定义每个属性才能在我的JSF页面中使用它。有人解决这个问题吗?

0 个答案:

没有答案