当尝试将RichFaces与OpenFaces合并到树表中时,它不显示任何展开折叠按钮。结果发现,有些js没有加载,这可能是造成这种情况的原因。
JSF代码如下:
<o:treeTable var="o">
<o:dynamicTreeStructure nodeChildren="#{bean.originNodeChildren}"
nodeHasChildren="#{bean.originHasChildren()}"/>
<o:treeColumn expandedToggleImageUrl="/img/toggle-expand-light.png"
collapsedToggleImageUrl="img/toggle-collapse-light.png">
<h:outputText value="#{o.description}"/>
</o:treeColumn>
</o:treeTable>Bean代码被正确触发(包括hasChildren方法)。
JS异常:
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/util/ajaxUtil-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/util/util-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/tableUtil-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/table/table-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/table/treeTable-2.1.EA1.1143.js)使用OpenFaces版本2.0和RichFaces版本3.3.3。
发布于 2012-01-05 14:02:05
需要在web.xml中为开放的faces配置资源筛选器,并完成这项工作。类似于:
public class OpenFacesResourceFilter extends ResourceFilter {
// -- Fields --
// -- Methods --
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try{
super.doFilter(servletRequest, servletResponse, filterChain);
} catch (ServletException e) {
Throwable parent = e.getCause();
if(parent!=null && parent instanceof ServletException) {
throw (ServletException) parent;
} else {
throw e;
}
}
}
}发布于 2012-01-13 12:26:33
这看起来确实没有在应用程序的xml文件中声明OpenFaces资源筛选器。以下是关于如何声明过滤器的文档的摘录(请注意,您不必自己为该过滤器创建任何Java类):
<!-- FILTER FOR PROCESSING INTERNAL OPENFACES RESOURCES -->
<filter>
<filter-name>ResourceFilter</filter-name>
<filter-class>org.openfaces.util.ResourceFilter</filter-class>
</filter>
<!-- MAPPING FOR OPENFACES RESOURCE FILTER -->
<filter-mapping>
<filter-name>ResourceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>请参阅安装部分,以及OpenFaces 2.0文档中的OpenFaces部分。
https://stackoverflow.com/questions/8742408
复制相似问题