Дерево Richfaces дает мне «Uncaught ReferenceError дерево не определено» - PullRequest
0 голосов
/ 18 ноября 2011

Я считаю, что моя проблема где-то в файле настроек, но я не знаю, что это за файл / настройка. У меня есть отдельный проект с рабочим деревом, но когда я пытаюсь интегрировать его с моим реальным проектом, я начинаю получать упомянутую ошибку. Это то, что заставляет меня думать, что у меня где-то отключена настройка. Я использую JSF1.2 и richfaces 3.3.3. Вот мой файл JSP.

<!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;
}

Итак, какой необходимый файл / настройки мне не хватает? Я уверен, что забыл самую важную информацию, поэтому ты мне нужен. Спасибо, Dale

1 Ответ

2 голосов
/ 18 ноября 2011

Итак, я понял, в чем проблема. По какой-то причине 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>

Надеюсь, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...