我正在尝试从我的RichFaces项目删除 jquery和原型以及Scriptaculous。我不想在那里使用这些库,因为我想在这个项目中使用最新版本的jQuery,并且拥有这些库的3个旧版本会让它变得困难。
我无法在网上找到任何说明 RichFaces 的哪些部分需要这些库的文档。事实上,对我来说似乎有点疯狂,他们决定在那里包含原型和jquery。
答案 0 :(得分:6)
如果您使用的是RichFaces 3.1.x,可以在web.xml文件中添加它
<context-param>
<param-name>org.richfaces.ExcludeScripts</param-name>
<param-value>Prototype,Scriptaculous,JQuery</param-value>
</context-param>
但是,这在以后的版本中不起作用。更多信息here。
如果你想在你自己的代码中使用最新的jQuery,看看this blog post我写了解释如何使用你自己的jQuery版本而没有冲突。
基本想法是你必须使用jQuery.noConflict();
您可以将此分配给您自己的选择器,即:$j = jQuery.noConflict();
然后您可以自由使用自己的jQuery版本,而不会影响Richfaces附带的版本。
function showMessages() {
$j("div#messagetextPanel").fadeIn("fast");
}
Richfaces 4.x与jQuery 1.4捆绑在一起
答案 1 :(得分:3)
有点疯狂。我不确定Richfaces 4中是否有所改变,但以下情况适用于3.x。
rich:effect
。然而,您可以升级这些版本并使用您自己的版本,前提是您在web.xml中使用NONE的LoadScriptStrategy并手动将脚本加载到您的页面中。
<context-param>
<param-name>org.richfaces.LoadScriptStrategy</param-name>
<param-value>NONE</param-value>
</context-param>
答案 2 :(得分:2)
Richfaces 3.x为richfaces-ui.jar / META-INF / rich.component-dependencies中的每个组件定义了脚本依赖项。不幸的是,大多数Richfaces UI组件都依赖于jQuery和Prototype。
基本的ajax功能(来自ajax4jsf)非常干净,不依赖于jQuery或Prototype。因此,要获得ajax支持,您只需要以下内容:
您可以在自定义文件中将它们放在一起,以避免Richfaces单独加载它们。如果要使用自定义脚本,则需要将web.xml中的context-param org.richfaces.LoadScriptStrategy设置为NONE。
如果您想使用UI控件,那么您可能最终必须同时拥有jQuery和原型。但是,您可以将基础jQuery升级到1.4.3。为此,您需要查看Richfaces对jQuery.js进行的调整,并重新应用于更高版本的jQuery。
Richfaces 4应该是一个更清洁的实现。我希望如此!