Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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
Javascript 检查是否使用jQuery设置了请求属性_Javascript_Jquery_Servlets - Fatal编程技术网

Javascript 检查是否使用jQuery设置了请求属性

Javascript 检查是否使用jQuery设置了请求属性,javascript,jquery,servlets,Javascript,Jquery,Servlets,是否可以检查请求对象中是否存在属性? 我有一些错误案例,其中必须向客户端发送错误消息: Servlet代码: request.setAttribute("error", "The following term was not found in the index: " + terms); RequestDispatcher dispatcher = request.getRequestDispatcher("graph.jsp"); dispatcher.forward(request, res

是否可以检查请求对象中是否存在属性? 我有一些错误案例,其中必须向客户端发送错误消息:

Servlet代码:

request.setAttribute("error", "The following term was not found in the index: " + terms);
RequestDispatcher dispatcher = request.getRequestDispatcher("graph.jsp");
dispatcher.forward(request, response);
我试过这样做,但我没有得到一个警报窗口在所有

JSP代码:

<script>
   var test = "${error}";
   if(test != null)
       alert(test);
</script>

var test=“${error}”;
如果(测试!=null)
警报(测试);

如果我读对了,你有一个JSP应用程序输出这个JavaScript。换句话说,JSP页面将变量error设置为字符串值。然后,这将用于生成JavaScript,您希望该JavaScript警告错误变量的内容

您的JS代码通常是正确的。有几件事对我来说很突出:

1) 将语言属性添加到脚本标记(如下所示)


var test=“${error}”;
如果(测试!=null)
警报(测试);
2) 检查浏览器中的错误

我测试了这里的代码,当错误值类似于“hello world”时,它对我有效。测试变量设置为该值。字符串不等于null(尽管空字符串也不等于null,所以if语句有点无用)。这使我认为,您从${error}输出的字符串中可能有一个双引号

假设您的错误是:在索引中没有找到以下术语:“鳄梨”

生成的JS如下所示:

<script language="javascript">
    var test = "The following term was not found in the index: "avocado"";
    if(test != null)
        alert(test);
</script>

var test=“在索引中未找到以下术语:“鳄梨”;
如果(测试!=null)
警报(测试);
请注意双引号字符串中的双引号。这是一个语法错误


如果您使用的是chrome,请打开开发者工具(视图>开发者>控制台)。重新加载页面。您是否看到报告的错误消息?如果是,错误是什么?如果没有,请查看您的源代码并查看生成的JS,然后将其发布到此处以供仔细检查。

您应该检查是否为空,但不检查是否为空。
if(test!=“”)

您从哪里获得
${error}
语法?您将需要显示更多的Javascript…语法错误;jQuery作为一个函数工作;可能是$(错误)或类似的东西?如果你的意思是我认为你的意思,那么不是。请求对象只存在于服务器上。当您的页面呈现、发送到浏览器并运行脚本时,就没有请求对象了。您是否希望计算
${error}
,因为它是EL?这是服务器上的第一个代码段吗?它是AJAX调用的一部分吗?如果将其发送回客户端,则错误将出现在类似
data.error
的内容中,其中
data
是AJAX回调函数的参数。感谢您的详细响应。首先,servlet只会在某些时候设置error属性,而不是在所有时候。这意味着它有时是空的。我想知道情况是否如此。其次,字符串术语中永远不会有双引号或单引号。所以我不会为此担心。第三,JS代码位于JSP页面内。在开发人员工具中哪里可以看到它?我有一个名为“Elements”的视图,在这里我可以看到代码,但没有错误消息。如果我用无效输入触发程序,我的源代码如下所示:var test=“在索引中找不到以下术语:sdfsdfsdf”;如果(测试!=null)警报(测试)。。。但没有显示警告消息。在另一种情况下(有效输入),有一条空警报消息,代码如下所示:var test=“”;如果(测试!=null)警报(测试)。。在这种情况下,servletI中根本没有设置属性。我在这里做了一些假设。我假设您正在通过web浏览器请求JSP页面。对吗?如果您的web浏览器是chrome,您应该能够打开chrome的控制台(View>Developer>console),并查看报告的错误消息(如果有)。我还必须说,我还没有对JSP做过很多工作,但JSP的语法应该类似于将变量输出到html中。我认为这意味着您的JSP代码应该看起来像var test=“”,对吗?另一个问题,为什么不把逻辑放在Java而不是JavaScript中?IE:警报(“”);。请注意,错误变量的存在取决于JSP中的Java。最后,如果在JS中设置error=“”,则没有错误消息是“”,因此您的逻辑应该是if(error!=“”)@DougHughes:
var test=“${error}”允许获取请求属性“error”。在javascript/jquery中有没有类似的方法设置请求属性?
<script language="javascript">
    var test = "The following term was not found in the index: "avocado"";
    if(test != null)
        alert(test);
</script>