0

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

小服务程序代码:

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>
4

2 回答 2

0

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

于 2013-02-16T12:07:28.970 回答
0

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

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

1)在脚本标签中添加语言属性(如下图)

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

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>

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

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

于 2013-02-15T21:39:22.297 回答