【发布时间】:2010-10-26 01:42:29
【问题描述】:
在jsp中,如何在不改变页面的情况下发布表单?
本质上,我正在尝试:
1) 首先,在后端启动一个 servlet,并使用一个 post 来处理 HttpServletRequest。 2) 其次,一旦 servlet 完成,将使用原型的 Ajax.Updater 函数将响应消息发布到页面上的 DIV 中。
当然不用离开页面。
【问题讨论】:
标签: ajax jsp servlets post prototypejs
在jsp中,如何在不改变页面的情况下发布表单?
本质上,我正在尝试:
1) 首先,在后端启动一个 servlet,并使用一个 post 来处理 HttpServletRequest。 2) 其次,一旦 servlet 完成,将使用原型的 Ajax.Updater 函数将响应消息发布到页面上的 DIV 中。
当然不用离开页面。
【问题讨论】:
标签: ajax jsp servlets post prototypejs
您可以通过 jQuery.AJAX 执行此操作,关注:http://docs.jquery.com/Ajax
example : $.post(servleturl, paramters, callbackfunction, "html");
【讨论】:
我使用了一些原型,你可能想要工作,只需提交你的表单,在我的工作中做了类似的事情,但你为什么不使用DWR?我认为异步回调和那些东西更好。
我会检查异步提交的代码。
【讨论】:
我知道有两种方法。首先,您可以从表单中提取值并将它们作为单独的 Ajax.Request 提交。 Alamar 在此发布了一些 good instructions:
使用 Form.serialize(true) 获取哈希 以参数名称为键。
你可以为所欲为 哈希,包括删除输入, 改变它们的值,过滤它们 等等。
Ajax.Updated 然后会接受 修改后的哈希作为参数。
另一种方法是使用表单元素的“目标”属性创建一个 iFrame,它将从您的表单请求中获取响应。如果您在同一个域中工作,您将可以访问该 iFrame 的内容,并可以使用其中返回的信息来使用您想要返回的任何消息更新父页面。这种方法更复杂,但在某些情况下是必要的。例如,如果您正在处理文件上传输入,则第一种方法中的序列化哈希将不起作用。
【讨论】: