我有一个名为process.jsp的JSP.Upon点击我的应用程序中的命令,弹出窗口会打开一些数据来选择,在我选择数据并点击提交后,将调用procees.jsp。处理数据并存储到database.In process.jsp,我尝试catch block.suppose如果在try块中抛出任何异常它应该在catch块中捕获并且警告消息应该显示为“处理失败”和父窗口关闭弹出窗口后应该刷新。代码如下所示
<%
try{
int a=1/0;
}catch(Exception ex){
ex.printStackTrace();
%>
<script>alert("process fialed");
window.close();
parent.loaction.href=parent.loaction.href;
</script>
<%
}%>
我尝试使用上面的代码,但没有任何脚本代码行被执行。任何人都可以帮助我。 提前致谢
答案 0 :(得分:0)
第一件事
parent.loaction.href=parent.loaction.href; //what is loaction ???? its location
和第二
您想要做的是在发生异常时在捕获中调用警报 我的建议是不要用这个!仅仅因为混合它们不会解决你真正想要做的目的。
你正在做的是混合编程语言&amp;脚本语言它们之间的区别是,在编译语言时,客户端运行清晰的脚本语言,并在构建逻辑后计算所需的结果。
如果您想使用js调用java方法,可以使用DWR
但不要这样做
了解更多内容
Scripting Language vs Programming Language
也可以捕获异常并向用户显示你可以直接显示在div元素中。或者当div发生时显示或隐藏它
答案 1 :(得分:0)
我认为您可能误解了JSP中的Java代码与页面的Javascript / HTML之间的关系。无论如何,我认为这可以解决你想要做的事情:
<html>
<body style="margin:0; padding:0">
<%
String errorMsg = null;
try {
// do something
throw new Exception("This is an error");
} catch (Exception e) {
errorMsg = e.getMessage();
}
if (errorMsg != null) {
%>
<script>alert('<%=errorMsg%>');</script>
<%
}
%>
</body>
</html>