2

我想在标准 JSF 组件中使用自定义属性。使用或者更确切地说引入 ResponseWriterWrapper,如下所述:Adding custom attribute (HTML5) support to JSF 2.0 UIInput component,当自定义属性的值是 EL 表达式时不起作用。

我为组件 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 方法时,我可以看到这一点。

有人知道这是什么原因以及如何通过解决方法或其他方法解决此问题?

提前致谢!

4

1 回答 1

-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,它是您的一个选择。

于 2015-01-23T13:27:06.387 回答