我创建了一个示例jsf应用程序,并尝试使用jquery。在什么目录中应该找到jquery.js文件? WEB-INF? SRC?我下载了.js文件,但似乎没有用。我不确定它应该在哪里。
我已将我的代码更新为指向googleapis,但它仍无效:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js">
$(document).ready(function(){
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
});
</script>
<p id="p1">Enter this paragraph.</p>
</h:body>
答案 0 :(得分:2)
只要您提供正确的文件路径,就可以将它保留在任何位置。但是要尽量远离WEB-INF
目录,只保留该目录下的私有文件(用户无法直接访问的文件)。
如果您有web-content
目录,请将jquery文件保存在web-content\js
目录下,以便您可以通过<path-to-your-app>/js/jquery.js
访问它。
但是如果你可以尝试使用jQuery的download section中给出的文件的CDN版本。您可以使用Google或Microsoft CDN。
答案 1 :(得分:1)
无所谓,最重要的是你必须给出正确的道路。
例如:
<script language="javascript" src='script/jquery-1.6.min.js'></script>
包含jquery的html文件必须与脚本文件夹一起放置。
答案 2 :(得分:1)
鉴于您正在使用JSF2,您可以使用JSF2资源管理系统。也就是说,将CSS / JS /图像资源放在公共webcontent的/resources
文件夹中,如下所示:
WebContent
|-- resources
| |-- css
| | `-- style.css
| |-- js
| | `-- script.js
| `-- img
| `-- logo.png
:
然后可通过以下组件获取:
<h:outputStylesheet name="css/style.css" />
<h:outputScript name="js/script.js" />
<h:graphicImage name="img/logo.png" />
在您的特定情况下,您需要将其另存为/resources/js/jquery-1.9.0.min.js
:
WebContent
|-- resources
| `-- js
| `-- jquery-1.9.0.min.js
:
并参考如下:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
<h:outputScript name="js/jquery-1.9.0.min.js" />
</h:head>
<h:body>
<h:outputScript target="body">
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
</h:outputScript>
<p id="p1">Enter this paragraph.</p>
</h:body>
注意:<h:outputScript target="body">
将自动定位到<body>
的结尾,该$(document).ready()
将比{{1}}更早发布。
答案 3 :(得分:0)
请注意,您需要在链接前放置http或https ..
答案 4 :(得分:0)
您可以将脚本文件保存在WebResources
/ WebContent
文件夹中(任何资源文件夹,但路径必须正确),
使用h:outputScript
加载脚本文件:(Reference)
<h:outputScript name="js/jquery-1.6.2.js" />
如果您使用的是RichFaces,请放置路径:
<a4j:loadScript src="resource:///pathToFile/jquery-1.4.2.min.js" />
添加 Google CDN :
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
参考:jQuery in xhtml
您的情景:使用如下代码。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
</h:head>
<h:body>
<script type="text/javascript">
$(document).ready(function(){
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
});
</script>
<p id="p1">Enter this paragraph.</p>
</h:body>
或强>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
});
</script>
演示:
Live Example1(在正文中添加谷歌CDN)
Live Example2(在标题中添加谷歌CDN)。
答案 5 :(得分:0)
您可以将jquery库放在WebContent
目录中的Web应用程序的resources
文件夹中。
WebContent
->resources->js->jquery-latest-version.js
您可以通过指定
在JSF页面中包含jquery<h:outputScript name="js/jquery-latest-version.js" />
在html <head>
内或页面底部。
答案 6 :(得分:0)
在您的网络应用添加文件夹resources
下一个文件夹js
下一个由JavaScript文件命名为jquery.js
的文件夹,并在此有效的JavaScript文件中,其名称与版本的语法相匹配,例如1_6.js
。
因此,对于您的示例,它将是:
<your_web_app>/resources/js/jquery_min.js/1_6.js
这是一种正确的JSF方式。现在您可以在jsf页面中使用:
<h:outputScript library="js" name="jquery_min.js"/>
所有版本都将由JSF Framework管理。如果您添加下一个版本,可能是1_7这样名为1_7.js
的文件到您的jquery_min.js
文件夹,那么JSF将自动从上面的代码调用该文件版本。