【发布时间】:2012-07-24 01:13:53
【问题描述】:
我想在标准 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 方法时,我可以看到这一点。
是否有人知道这是什么原因以及如何通过解决方法或其他方式解决此问题?
提前致谢!
【问题讨论】:
-
你能告诉我们 data-collapsed 将用于什么吗?可能有某种解决方法。
-
感谢您的回复。该示例仅旨在以简单的方式显示问题。在这种特定情况下,解决方法是我阅读了很多 JSF 组件文档,并且阅读了很多关于“必须解析为
的 EL 表达式”的内容。我对此不是很了解,但是,执行解析为某种数据类型的 EL 表达式的方法应该是什么? 数据类型由组件类中的getter/setter方法定义。检查这个例子:blog.evolutionarydawn.com/2009/06/11/custom-jsf-component-12 但我看不到你的意思,你能解释一下吗?
标签: html jsf jakarta-ee