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

标签 jquery jsf-2 facelets jquery-validate

我想使用 jQuery Validate 插件和 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>

当我单击 Firefox 中的脚本选项卡时,我在下拉列表中看不到任何脚本文件。显示一条消息:

If tags have a "type" attribute, it should equal "text/javascript" or "application/javascript". Also scripts must be parsable (syntactically correct).

此外,我的 jquery 效果(如鼠标悬停、隐藏、显示等)不起作用。我尝试使用常用的脚本标签

<script type="text/javascript" src="../js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/jquery.maskedinput.js"></script>
<script type="text/javascript" src="../js/myapp.validate.js"></script>

这没有用。但它仍然无法找到我的 JS 文件。我所有的JS文件都放在

   Web pages
       |_ js
           |_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js

我尝试了 Using jQuery with JSF 2.0's resource 上发布的解决方案之一但没有成功。

请给我建议一个解决方案。我不想将 JSF 内置验证与 ajax 一起使用,因为我们将代码从 JSP 移至 JSF 并且已经编写了验证。我想重用我之前编写的现有 jQuery 验证。

最佳答案

<h:outputScript> (和 <h:outputStylesheet> )从 /resources 加载资源文件夹。您需要将脚本放入该文件夹中。

WebContent
|-- resources
|    `-- 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”并不表示 real library )

你的<script>方法失败可能是由于使用了不正确的相对路径造成的。您需要认识到资源是相对于当前请求 URL 进行解析的,而不是相对于它们在服务器端磁盘文件系统中的路径进行解析。

关于jquery - 如何通过 h :outputScript? 包含 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093032/

相关文章:

javascript - 检查列表中的元素是否具有来自变量的 SRC,然后运行代码 - jQuery/Javascript

jsf - 魔术用户界面 :repeat var

java - 复合组件中的支持 bean 在每次请求时重新创建

jsf-2 - Tomcat7 中带有小面的 JSF

java - JSP 和 Facelets 之间有什么区别?

javascript - 限制显示寻呼机的分页数

asp.net - 将 jquery 注入(inject)每个 ASP.Net 页面

javascript - 延迟 keyup 函数(如 jquery 和 ajax 验证)

jsf-2 - JSF 注释 @ListenerFor/@ListenersFor 不起作用

JSF - 获取 SessionScoped Bean 实例