JSF:自定义属性不适用于EL表达式?

时间:2012-07-25 14:53:27

标签: html5 jsf java-ee

我想在标准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方法时,我可以看到这一点。

有人知道这是什么原因以及我如何通过解决方法解决这个问题?

提前致谢!

1 个答案:

答案 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,可以选择它。