我想在我的JSF页面中插入一个外部javascript文件。所以我做的是:
现在,JSF文件名为start.xhtml,两者都位于同一文件夹中。然而,当我跑步时,没有任何事情发生[当我点击时,javascript应该弹出警报]。我查看了页面源代码,并在。
中显而易见如果没有找到RES,我做错了什么?我甚至放了绝对的路径但没有发生任何事情:(。我悲伤的熊猫。
Fyi,我正在使用最新的Netbeans。
谢谢, 曲。
答案 0 :(得分:5)
尝试以这种方式包含您的脚本
<script src="#{facesContext.externalContext.requestContextPath}/yourPathAfterWebpages/scriptFile.js" type="text/javascript"></script>
答案 1 :(得分:4)
首先,绝对路径必须有效。这不是Netbeans或Glassfih或JSF的问题 - 它是一个浏览器的东西。如果您的浏览器出现故障阻止它从有效网址中获取Javascript,您会注意到。因此,如果您的Javascript没有加载,那么99%的可能性是一个简单的错字,一个愚蠢的错误(忘记目录名称,添加额外的斜线或类似的东西),并且与任何提到的技术无关。
另一个理论(只是一个理论 - 我没有足够的数据来证明它)是你有一个标准的映射,在“虚拟”面目录中显示所有面部文件( / faces / < / EM> *)。因此,当您将index.xhtml放在Foo项目的主目录中时,您会看到它: localhost:8080 / Foo / faces / index.xhtml 。路径的“faces”部分不代表任何真实目录,它只是一个映射。因此,如果您有一个坐落在index.xhtml下的js文件,您可以像下面这样说:'../ yourjavascript.js'; ../ 用于补偿虚拟目录部分。
无论如何,我强烈建议你删除你的脚本加载dillemas并使用官方和很好的加载资源的方式,例如javascript将它们放入一个名为“resources”的目录中(在“web pages”节点下创建一个Netbeans,它将最终出现在.war的顶级目录中;要获取在资源下保存的任何文件的路径,您可以使用EL:#{resource ['filename.css']}。您将通过以下方式加载脚本:
<script src='#{resource['script.js']}' ></script>
如果您使用资源目录,则可以执行更多操作read up on some detailshere