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

时间:2013-02-15 21:13:34

标签: 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, response);

我试过这样,但我根本没有得到警报窗口......

JSP代码:

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

2 个答案:

答案 0 :(得分:0)

如果我正确阅读,你有一个JSP应用输出这个JavaScript。换句话说,JSP页面将变量error设置为字符串值。然后,这将用于生成您想要警告错误变量内容的JavaScript。

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

1)为脚本标签添加语言属性(如下所示)

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

2)检查浏览器中的错误

我测试了你在这里的代码,当错误值类似于“hello world”时,它对我有用。测试变量设置为this。字符串不等于null(尽管空字符串也不等于null,因此if语句有点无用)。这让我觉得你从$ {error}输出的字符串可能有一个双引号。

假设您的错误是:索引中未找到以下术语:“avocado”。

您生成的JS看起来像这样:

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

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

如果您正在使用chrome打开开发人员工具(View&gt; Developer&gt; Console)。重新加载页面。您是否看到报告的错误消息?如果是,那是什么错误?如果不是,请查看您的源代码并查看生成的JS并将其发布在此处进行详细审核。

答案 1 :(得分:0)

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