参见英文答案 >
How to reference CSS / JS / image resource in Facelets template?2
我想使用jQuery Validate插件与JSF进行客户端表单验证.我在进口资源方面遇到基本困难.
@H_403_26@解决方法
我想使用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" />
(请注意,我省略了库属性,因为名称“js”不表示一个real library)
你的< script>方法失败可能是由于使用不正确的相对路径引起的.您需要意识到资源相对于当前请求URL而不是服务器端磁盘文件系统的路径进行解析.