2011-11-17 36 views
0

我相信我的问题是在某个设置文件中,但我不知道是什么文件/设置。我有一个带有工作树的独立项目,但是当我尝试将它与我的真实项目集成时,我开始收到提到的错误。这就是我认为我有一个设置在某个地方的设置。 我使用的是JSF1.2和Richfaces 3.3.3。这是我的JSP文件。Richfaces树给我一个“未捕获的ReferenceError树没有定义”

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<%-- jsf:pagecode language="java" location="/src/java/pagecode/agencyMappingPages/mapping/Mapping.java" --%><%-- /jsf:pagecode --%> 
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> 
<%@taglib prefix="rich" uri="http://richfaces.org/rich"%> 
<html> 
    <f:view> 
     <body> 
      <rich:tree switchType="client" value="#{mappingBean.nodes}" var="node"> 
      </rich:tree> 
     </body> 
    </f:view> 
</html> 

这里是我的豆代码:

public TreeNode<String> getNodes() { 
    TreeNodeImpl<String> nodes = new TreeNodeImpl<String>(); 
    TreeNodeImpl<String> root = new TreeNodeImpl<String>(); 
    root.setData("Test Tree Root"); 
    nodes.addChild(0, root); 

    return nodes; 
} 

我用下面的罐子。这些也是我在我的树的功能版本中使用的三个罐子。

richfaces-api-3.3.3.Final.Jar 
richfaces-impl-3.3.3.Final.Jar 
richfaces-ui-3.3.3.Final.Jar 

我在我的web.xml文件中得到了以下内容。

<filter> 
    <display-name>RichFaces Filter</display-name> 
    <filter-name>richfaces</filter-name> 
    <filter-class>org.ajax4jsf.Filter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>richfaces</filter-name> 
    <servlet-name>Faces Servlet</servlet-name> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
</filter-mapping> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>-1</load-on-startup> 
</servlet> 
<servlet> 
    <servlet-name>JavaScript Resource Servlet</servlet-name> 
    <servlet-class>com.ibm.faces.webapp.JSResourceServlet</servlet-class> 
    <load-on-startup>-1</load-on-startup> 
</servlet> 
<servlet> 
    <servlet-name>Tiles2Servet</servlet-name> 
    <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class> 
    <init-param> 
     <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name> 
     <param-value>/WEB-INF/tiles20-defs.xml</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>JavaScript Resource Servlet</servlet-name> 
    <url-pattern>/.ibmjsfres/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

不知道这是否会有所帮助,但这里是javascript呛。我不得不省略表单,因为表单不会提交。我从Chrome的开发人员窗口复制了这些内容。它在第二行抛出异常:var tree = new tree ......

<script type="text/javascript">(function() { 
var tree = new Tree("j_id_jsp_1558828084_1", "j_id_jsp_1558828084_1:input", "client", 
    { 
    onselect: "", 
    onexpand: "", 
    oncollapse: "", 
    oncontextmenu: "" 
}, 
function(event) {var params = {'j_id_jsp_1558828084_1:selectedNode':event.selectedNode} ; 
if (!params.ajaxSingle && event.ajaxSingle) { 
params.ajaxSingle = event.ajaxSingle; 
} 

那么,我缺少什么必要的文件/设置? 我确定我忘记了最重要的信息,这就是为什么我需要你。 谢谢, 戴尔

+0

我不认为浏览器正在获取所有它需要的JavaScript文件。我在chromes deveoloper的工具中查看下载的js文件,但没有。任何人都知道为什么浏览器没有得到JavaScript文件? – Dale

回答

2

所以我想出了什么问题。出于某种原因,Richfaces未将脚本或样式文件发送到浏览器。它动态地将链接放在首位。 因此,我将以下过滤器添加到web.xml文件中,现在包括我和我的合作伙伴在内的一切都很开心。

<context-param> 
    <param-name>org.richfaces.LoadStyleStrategy</param-name> 
    <param-value>ALL</param-value> 
</context-param> 
<context-param> 
    <param-name>org.richfaces.LoadScriptStrategy</param-name> 
    <param-value>ALL</param-value> 
</context-param> 

希望这可以帮助别人。

相关问题