JSF2复合组件标签不兼容问题?

时间:2010-07-13 10:56:52

标签: jsf richfaces jsf-2 custom-component

此代码,使用JSF2的自定义组件的测试用例

仅供记录,文件:panel.xhtml,位于/resources/panels/panel.xhtml

test.xhtml:

    

<head>
</head>
<body>
<panels:panel/>
</body>
</html>

返回以下html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:panels="http://java.sun.com/jsf/composite/panels">

<head>
<script ...></script></head>
<body>
<panels:panel></panels:panel>
</body>
</html>

为什么没有被渲染?也许是因为我正在使用Richfaces 3.3.3.Final而且我在web.xml中有一个参数,所以Richfaces可以使用JSF2?我试过禁用它,但后来服务器没有启动所以我不能尝试,如果这是问题。

 <context-param>
     <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
     <param-value>true</param-value>
</context-param>

有人知道这是不是问题?如果是,则不允许使用新的自定义组件功能和Richfaces 3.3.3.Final一起使用?

更新:我已经检查过Richfaces 4.0 Alpha,它没有3.3.3.Final的所有组件但是已经实现了,所以它不是一个选项。

2 个答案:

答案 0 :(得分:1)

JSF 2.0复合组件不能与RichFaces 3.3.3一起使用,因为它们基于JSF 2.0 VDL。请查看this document

中的限制部分

答案 1 :(得分:0)

不要重新渲染Panel重新呈现面板的形式。 并包括面板使用

我希望你可能在web.xml中使用richfaces过滤器

enter code here : <a4j:commandLink id="abclink" oncomplete="#{rich:component('abcPanel')}.show()" reRender="abcForm"/>