我想在标准JSF组件中使用自定义属性。当自定义属性的值是EL表达式时,使用或更确切地引入如此处所述的ResponseWriterWrapper:Adding custom attribute (HTML5) support to JSF 2.0 UIInput component不起作用。
我为组件t:div引入了一个自定义渲染器类,并使用我的ResponseWriterWrapper来渲染自定义属性。所以写作时
<t:div data-role="collapsible" data-collapsed="false">
...
</t:div>
一切正常!
但是以下代码不起作用:
<t:div data-role="collapsible" data-collapsed="#{false}">
...
</t:div>
更详细的是,“data-collapsed”属性未呈现,因为它不是组件属性列表的一部分。当组件传递给encodeBegin方法时,我可以看到这一点。
有人知道这是什么原因以及我如何通过解决方法解决这个问题?
提前致谢!
答案 0 :(得分:-1)
对于要在JSF中呈现的自定义属性,它们应该作为Passthrough属性传递,这可以在JSF2.2中传递,而不是根据我的知识在2.0中传递。
如果您包含以下命名空间(jsf 2.2):
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
并定义<t:div data-role="collapsible" data-collapsed="#{false}">
它将在JSF组件中呈现数据折叠属性。
如果可以升级jsf,可以选择它。