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

check if request attribute is set with jQuery

本文关键字:请求 属性 设置 jQuery 是否 检查      更新时间:2023-09-26

是否可以检查请求对象中是否存在属性?我有一些错误情况,其中错误消息必须传递到客户端:

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>

如果我没有看错,您有一个JSP应用程序输出这个JavaScript。换句话说,JSP页面将变量error设置为字符串值。然后,它用于生成JavaScript,以便提醒错误变量的内容。

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

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

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

2) 检查浏览器中的错误

我测试了您在这里的代码,当错误值类似于"helloworld"时,它对我有效。测试变量设置为这样。字符串不等于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>

注意双引号字符串中的双引号。这是一个语法错误。

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

在您的情况下,您应该检查是否为空,但不要检查是否为null。if(test != "")