Jquery 如何通过h:outputScript包含JavaScript文件?

Jquery 如何通过h:outputScript包含JavaScript文件?,jquery,jsf-2,facelets,jquery-validate,Jquery,Jsf 2,Facelets,Jquery Validate,我想将jQuery验证插件与JSF一起用于客户端表单验证。我发现在输入资源方面存在基本困难 在我的JSF页面中 <h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript> <h:outputScript library="js" name="jquery.validate.js"></h:outputScript> <h:outputScript library=

我想将jQuery验证插件与JSF一起用于客户端表单验证。我发现在输入资源方面存在基本困难

在我的JSF页面中

<h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript>
<h:outputScript library="js" name="jquery.validate.js"></h:outputScript>
<h:outputScript library="js" name="jquery.maskedinput.js"></h:outputScript>
<h:outputScript library="js" name="myapp.validate.js"></h:outputScript>
我尝试了发布在上的一个解决方案,但没有成功

请给我一个解决方案。我不想在ajax中使用JSF内置验证,因为我们将代码从JSP移到了JSF,验证已经编写好了。我想重用我以前编写的现有jQuery验证。

这个
(和
)从
/resources
文件夹加载资源。您需要将脚本放在该文件夹中

WebContent
|--资源
|`--js
||--jquery-1.6.2.js
||--myapp.validate.js
||--jquery.validate.js
|`--jquery.maskedinput.js
|--WEB-INF
:
然后,以下脚本声明应该可以工作:

<h:outputScript name="js/jquery-1.6.2.js" />
<h:outputScript name="js/jquery.validate.js" />
<h:outputScript name="js/jquery.maskedinput.js" />
<h:outputScript name="js/myapp.validate.js" />

(注意,我省略了
library
属性,因为名称“js”并不表示a)


您的
方法失败可能是因为使用了不正确的相对路径。您需要意识到,资源是相对于当前请求URL而不是服务器端磁盘文件系统中的路径解析的。

@BalusC,因此它会自动在resources文件夹下查找??如果是这样的话,这是否意味着我必须将我的web内容——css、图像等仅放在资源下???这是netbeans中设置的std文件夹结构吗?文档中是这么说的,是的。不,这与Netbeans完全无关。它只是一个工具。@BalusC您说您忽略了library属性,因为它不表示真正的库。你到底是什么意思?可以使用什么样的名称?库不是与resources下文件夹的名称对应吗?@user:“resource library”应该表示所有这些资源所属的公共主题/外观/模块,甚至可以嵌入到/WEB-INF/lib中的JAR文件中。这还允许您进行适当的库版本管理。至于名字,你自己选吧。JSF使用“javax.faces”,PrimeFaces使用“PrimeFaces”,OmniFaces使用“OmniFaces”,等等。请参见:,和@BalusC谢谢,但我不明白。在参考资料下,应该只有一个文件夹(common、javax.faces、primefaces、omnifaces),在css、js等下面?我目前直接在参考资料中使用css和js,我可以将library=“css”与outputStylesheet一起使用,但library=“js”似乎不能与outputScript一起使用。
   Web pages
       |_ js
           |_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js
<h:outputScript name="js/jquery-1.6.2.js" />
<h:outputScript name="js/jquery.validate.js" />
<h:outputScript name="js/jquery.maskedinput.js" />
<h:outputScript name="js/myapp.validate.js" />