此代码,使用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的所有组件但是已经实现了,所以它不是一个选项。
答案 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"/>