0

我在转发到 .jsp 页面时遇到问题。让我描述一下我的程序:

在 Servlet 中,我想确认一些事情,所以我做了 .forward() 到 .jsp,其中我在 $(document).ready(function()... 中包含了带有确认的 javascript

如果选择了 OK,我会创建新的 XMLHttpRequest() 并设置参数 confirm=1 并返回到之前的 Servlet,在该 Servlet 中,必须按预期执行确认(confirm=1)后必须执行的代码块。但是该块的最后一行是 .forward 回到 .jsp 似乎根本没有效果。

小服务程序代码:

if("1".equals(request.getParameter("confirm"))){
  ...
   setting some request.setAttribute();
}
else{
  ...
}

RequestDispatcher  rd = request.getRequestDispatcher(...);
rd.forward(req, res);

实际上,我看到了正确的页面,但我认为是在确认之前。它可能应该被重新加载,因为我必须从请求中获取一些属性并使用 jquery 显示一些内容,具体取决于这些属性值。

那么您认为 .forward() 没有效果的原因是什么?我可以以某种方式强制页面重新加载吗?

编辑:第一次执行 Servlet 代码(其他情况) .forward() 调用工作正常。但是下次它什么也不做,无论我尝试转发到哪个页面。就像我根本没有转接电话一样。奇怪的。我真的希望有人对此作出解释。

EDIT2:我猜这不是转发问题。如果我执行 system.out.print 所需属性,我会得到正确的值。但是为什么页面没有重新加载?即使我转发到不同的 .jsp,我仍然会看到前一个。

4

2 回答 2

0

在确认的情况下,你确定你走到最后,然后打电话给前锋吗?

可能是你得到一个空指针或类似的东西。

尝试添加 system.out.println() 或在调试模式下运行。

于 2012-04-10T08:01:02.840 回答
0

我并没有真正解决我的 .jsp 页面未加载问题。我实际上只需要将一些属性从 Servlete 传递给 javascript,所以我使用了 PrintWriter 的 jQuery ajax 调用,所以我将这些属性作为 javascript 函数中的键:值对。然后我简单地使用 javascript 将这些值设置为一些跨度。

于 2012-04-11T09:38:40.970 回答