我正在创建自定义标记库,其中嵌入了核心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页面中使用它。有人解决这个问题吗?