【问题标题】:Update iframe in container page on submit of <form> in container page在容器页面中提交 <form> 时更新容器页面中的 iframe
【发布时间】:2012-08-02 21:03:35
【问题描述】:

我有一个包含 IFRAME 的主 html 页面。 我有一个服务器端 jsp 代码,它第一次在 IFRAME 中显示了一些默认值。 每当有人尝试使用主页中的搜索按钮时,结果都会显示在 IFRAME 中并更新其内容。 我有一个 servlet,它对搜索到的数据进行计算并更新 IFRAME 内容。

问题:
我在 servlet 中使用了sendRedirect 方法来刷新 IFRAME,但无济于事。 我传递给sendRedirect 的字符串是/results.jsp?search=value&amp;size=1(要在iframe 中显示的jsp)。 servlet 的计算工作正常,但会打开一个新页面来代替主页:不是所需的输出。 带有其界面的主页应该保留在那里,只有 IFRAME 应该刷新。

我的问题:
这是刷新 iframe 的正确方法吗?如果不是请告诉我应该使用什么来通过 servlet 更新我的 iframe (jsp)。

PS:如有问题请见谅。我是 jsp-servlet 的新手。

非常感谢任何帮助

【问题讨论】:

  • 对吗:您想将搜索表单提交到与搜索框和按钮在同一页面上的 iram 中,并让 results.jsp 完成所有搜索工作?
  • 如果是这样,那么您只是在问如何在 iFrame 中提交表单。

标签: java jsp servlets iframe refresh


【解决方案1】:

如果搜索机制是 HTML 表单,您可以将表单的 target 属性设置为相关 iframe 的名称。详情请见W3Schools's page on this

【讨论】:

    【解决方案2】:

    当您使用 response.sendRedirect() 方法进行重定向时,调用 servlet 的实际“框架”将被修改。该框架可以是整个页面,也可以是 iframe,甚至是 javadocs 中使用的遗留框架。

    正如@Jake223所说,将target属性设置为表单中的iframe名称:

    如果您使用表单提交信息,那么您可以执行以下操作:

    <iframe name="resultframe"></iframe>
    <form action=[path to servlet] target="resultframe">
        <input type="text" name="searchq"/>
        <input type="submit" value="search"/>
    </form>
    

    如果您使用 javascript 创建 iframe,则使用 iframe 的 src 属性:

    <iframe src=[path to servlet]?[request params]></iframe>
    

    【讨论】:

    • 是的,它成功了。 @jake223:非常感谢。一开始我没有完全得到你的答案。 Jit B:当然,感谢您的回复和示例。我为按钮设置了目标,这就是问题所在。谢谢你们的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    相关资源
    最近更新 更多