Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery未在JSF应用程序中运行_Jquery_Html_Jsf 2_Alert_Netbeans 7 - Fatal编程技术网

jQuery未在JSF应用程序中运行

jQuery未在JSF应用程序中运行,jquery,html,jsf-2,alert,netbeans-7,Jquery,Html,Jsf 2,Alert,Netbeans 7,我是jQuery的新手 在netbeans中,我有,其中所有HTML文件都存在。我正在创建JSF2.0项目 下面是我的代码 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns

我是jQuery的新手

在netbeans中,我有,其中所有HTML文件都存在。我正在创建JSF2.0项目

下面是我的代码

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:t="http://myfaces.apache.org/tomahawk"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >
    <h:head>
        <title>Welcome to MySite.</title>
    </h:head>

    <script language="text/javascript" src="#{facesContext.externalContext.requestContextPath}/faces/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            alert('I am here...');
            $("#table tr:last").after("<tr><td>some</td><td>content</td></tr>");
        });

    </script>

欢迎来到我的网站。
$(文档).ready(函数(){
警惕(‘我在这里……’);
$(“#table tr:last”)。在(“somecontent”)之后;
});
我相信有了这段代码,无论何时加载文档,我都应该得到警告,因为
嗨,我在这里…
但是我没有得到任何警告

另外,当我看到view source并单击
jquery-1.7.2.js
时,它会被打开

知道我为什么不警觉吗

更新1
我正在学习提供的教程,但仍然不走运:(

这似乎是一个错误的文件位置,我不知道您在web应用程序中放置jquery文件的确切位置,但无论如何,它应该位于resources文件夹下的文件夹中,所以

WebContent下添加
resources
文件夹

并在资源内部创建
js
文件夹

然后像这样访问文件

 <h:outputScript name="js/jquery-1.7.2.js" target="head" />

我相信JSF可能正在强制执行XHTML标准,这些标准告诉它忽略脚本标记,因为它超出了头或体标记。你检查过脚本标记是否被呈现了吗

我从中学到了处理JSF的最好方法是用JSF的方式,在本例中,它将使用h:outputScript标记


另外,使用JavaScript的一个好方法是将它放在一个单独的.js文件中,即使您只在一个页面上使用它。这样可以更容易地在浏览器中调试。

您确定这句话:“{facesContext.externalContext.requestContextPath}/faces/jquery-1.7.2.js”?如果我是你,我会查看浏览器Url,然后用相对路径w/r编码到该Url,指向jquery-1.7.2.js。
另一种可能的调试方法是在当前文件夹中复制jquery-1.7.2.js(即当前的.xhtml),然后脚本标记行是src=“./jquery-1.7.2.js”。如果您可以看到警报,那么问题就出在该行路径上。

为了确定问题,请尝试使用
您可能已经检查了它,但仍要确认一次。您提到,在jsp源代码中,当您单击jquery js文件时,它已打开,但它是否有jquery代码或错误报告?@Daniel:它的工作方式是使用您的选项…那么问题出在哪里?jquery文件不好吗?@FahimParkar给出了一个答案…虽然这可能有效,但这是对
属性的错误使用。去掉它并使用
name=“js/jquery-1.7.2.js”
。谢谢你的帮助。我只是好奇,为什么我必须这样做?我相信在我以前的项目中我不需要这样做……这是对Daniel的答案的评论,而不是对你的问题的评论。@BalusC,为什么使用
库是错误的?有没有机会提供一个参考来解释这一点,因为到目前为止我只看到它被这样使用过(对于library),例如,库应该表示资源库,例如“primefaces”、“omnifaces”、“javax.faces”、“mylibrary”等,而不是“js”、“css”等资源类型。否则,更复杂的JSF Web应用程序中的高级资源库管理将失败。不,这根本不是问题的原因(首先请您自己进行实验)。再次仔细检查脚本URL以了解问题的原因。他确实说过jQuery正在通过浏览器正确加载:“另外,当我看到view source并单击jQuery-1.7.2.js时,它会被打开。”我知道。再次检查脚本URL。有什么不属于这里?不是JSF专家,但我猜JSF不会在普通html标记属性中计算表达式?