是否可以检查请求对象中是否存在属性? 我有一些错误情况,必须将错误消息传递给客户端:
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>
答案 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 != "")