我相信我的问题出在某处的设置文件中,但我不知道会是什么文件/设置。我有一个带有工作树的独立项目,但是当我尝试将它与我的真实项目集成时,我开始得到提到的错误。这就是让我觉得我有一个设置在某个地方的原因。 我正在使用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>
这是我的bean代码:
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 :(得分: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>
希望这有助于其他人。