【问题标题】:Adding external javascript in JSF在 JSF 中添加外部 JavaScript
【发布时间】:2011-06-19 17:40:38
【问题描述】:
我想在我的 JSF 页面中插入一个外部 javascript 文件。所以我做的是:
现在,JSF 文件被命名为 start.xhtml 并且两者都位于同一个文件夹中。但是,当我运行时,什么也没发生[单击时应该弹出警报的 javascript]。我检查了页面源代码,并在 .
我做错了什么导致 RES NOT FOUND?我什至放了绝对路径但什么也没发生:(。我伤心的熊猫。
仅供参考,我使用的是最新的 Netbeans。
谢谢,
歌曲。
【问题讨论】:
标签:
javascript
jsf
netbeans
【解决方案1】:
尝试以这种方式包含您的脚本
<script src="#{facesContext.externalContext.requestContextPath}/yourPathAfterWebpages/scriptFile.js" type="text/javascript"></script>
【解决方案2】:
首先,绝对路径必须有效。这不是 Netbeans 或 Glassfih 或 JSF 的问题 - 这是浏览器的问题。如果您的浏览器出现故障,无法从有效 url 获取 Javascript,您会注意到的。因此,如果您的 Javascript 未加载,则有 99% 的可能性是一个简单的拼写错误、一个愚蠢的错误(忘记目录名称、添加额外的斜线等),并且与任何提到的技术无关。
另一个理论(只是一个理论 - 我没有足够的数据来证明它)是您有一个标准映射,显示“虚拟”面孔目录中的所有面孔文件(/faces/*)。因此,当您将 index.xhtml 放在 Foo 项目的主目录中时,您会在以下位置看到它:localhost:8080/Foo/faces/index.xhtml。 path 的“faces”部分并不代表任何真实的目录,它只是一个映射。因此,如果您有一个位于 index.xhtml 旁边的 js 文件,您可以这样处理它:'../yourjavascript.js'; ../ 是为了补偿虚拟目录部分。
无论如何,我强烈建议你放弃你的脚本加载困境并使用官方和好的加载资源的方法,例如 javascript 将它们放入一个名为“resources”的目录中(在“web pages”节点下创建一个Netbeans,它将最终在您的 .war 的顶级目录中);要获取保存在资源下的任何文件的路径,请使用 EL,例如:#{resource['filename.css']}。您将通过以下方式加载脚本:
<script src='#{resource['script.js']}' ></script>
如果你使用资源目录,你可以做更多的事情,read up on some detailshere