通过 servlet 从一个 jsp 到另一个进行通信
Communicating from one jsp to another via servlet
我有 2 jsp 页。一个主页和一个表单页面。主页有一个网格(extjs 框架),当我单击一行时,它会打开我的表单 jsp 页面。我想要实现的是,提交表单后,我希望我的主页刷新其网格以显示从表单提交的新数据。请注意,表单页面是一个新的 window。 它们在不同的浏览器中共存 windows(用户同时看到两者)。
我想到的一种方法是通过服务器发送的事件。表单提交后,我从 form.jsp 向 servlet 发送了一个 ajax 请求,它应该用我的 main.jsp 监听的事件流来响应,但它似乎没有工作。当我尝试创建 EventSource 对象时,出现错误:
EventSource's response has a MIME type ("text/javascript") that is not "text/event-stream". Aborting the connection.
错误似乎出现在我的文档类型声明中:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
我不太确定为什么会这样。如有任何帮助,我们将不胜感激。
不管我尝试实现的方法是什么,有没有更好的方法?或者服务器发送事件方法的修复?
您可以在提交表单时执行此操作 window.opener.location.reload(true)
。 'true' 如果您想从服务器完全重新加载此页面。
如果您不想刷新整个页面,则可以按照以下步骤操作。
- 在主页上使用代码创建一个方法来刷新您的网格。
function refreshGrid()
.
- 使用 opener 引用从打开的页面调用此方法。
window.opener.refreshGrid()
.
希望对您有所帮助。
我有 2 jsp 页。一个主页和一个表单页面。主页有一个网格(extjs 框架),当我单击一行时,它会打开我的表单 jsp 页面。我想要实现的是,提交表单后,我希望我的主页刷新其网格以显示从表单提交的新数据。请注意,表单页面是一个新的 window。 它们在不同的浏览器中共存 windows(用户同时看到两者)。
我想到的一种方法是通过服务器发送的事件。表单提交后,我从 form.jsp 向 servlet 发送了一个 ajax 请求,它应该用我的 main.jsp 监听的事件流来响应,但它似乎没有工作。当我尝试创建 EventSource 对象时,出现错误:
EventSource's response has a MIME type ("text/javascript") that is not "text/event-stream". Aborting the connection.
错误似乎出现在我的文档类型声明中:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
我不太确定为什么会这样。如有任何帮助,我们将不胜感激。
不管我尝试实现的方法是什么,有没有更好的方法?或者服务器发送事件方法的修复?
您可以在提交表单时执行此操作 window.opener.location.reload(true)
。 'true' 如果您想从服务器完全重新加载此页面。
如果您不想刷新整个页面,则可以按照以下步骤操作。
- 在主页上使用代码创建一个方法来刷新您的网格。
function refreshGrid()
. - 使用 opener 引用从打开的页面调用此方法。
window.opener.refreshGrid()
.
希望对您有所帮助。