我面临一个非常奇怪的问题。我正在使用jsf 1.2和richfaces 3.3.3构建一个Web应用程序。我没有加载任何外部jquery版本,而是坚持富表面提供的默认版本,即jquery版本1.3.2。我使用'jQuery'关键字访问默认的jquery。
我在页面顶部包含了一些javascript文件,其中包含jquery。 当我从该页面中删除所有richfaces组件时,它看起来像是没有加载jquery。那是在控制台上,我看到消息'jQuery is undefined'。但是当我在页面中包含“rich:extendedDataTable”标记时,此错误就会消失。奇怪的是,如果我包含'rich:dataTable',错误仍然存在。只有当我使用'rich:extendedDataTable'时,看起来jQuery才会加载到我的页面中。所以我现在做的是在页面上放置一个'rich:extendedDataTable',因为mo的原因和render是'False'。我不确定这有多大意义。
jsf包含在页面顶部
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../../styles/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="../../styles/Stylesheet.css" rel="stylesheet" type="text/css" />
<script src ="first.js" language="JavaScript"/>
<script src ="second.js" language="JavaScript"/>
<script src ="validation.js" language="JavaScript"/>
在控制台上看到的错误是 ReferenceError:未定义jQuery
这里发生了什么? Wy看起来只有在我包含特定的丰富组件时才会加载jquery。即使在该页面中没有加载丰富的组件,我如何使用jQuery在我的apge bby默认值上可用
答案 0 :(得分:5)
RichFaces只在需要自己的时候才为JQuery添加导入。即使您没有使用任何使用JQuery的RichFaces组件,也必须强制RichFaces加载JQuery。
您可以通过编写以下命令强制导入JQuery:
<a4j:loadScript src="resource://jquery.js"/>
如果您搜索此代码,您会发现很多示例。