【问题标题】:Wicket open Bookmarkable page on new tab检票口在新标签上打开书签页面
【发布时间】:2017-09-08 15:49:25
【问题描述】:

我在 Wicket 中有一个 WebPagePageParameters,以便可以通过 BookMarkablePageLink 使用它。

我也可以打开它:

 setResponsePage(MyPage.class, params);

,但我不能以与新标签类似的方式打开它。

我在onSubmit() 中使用表单,我想调用该页面并将其放置到选项卡中。我不知道我怎么能

a) 验证表单
b) 验证成功后打开页面
c) 页面出现在新标签中。

如何制作零件c?我知道如何验证和打开页面,请帮助我打开标签。

对于我给target="_blank" 的表格,但没有帮助,可能是因为使用了setResponsePage() 方法。

编辑:

这不是 Open new Tab when button is clicked 的重复,因为没有任何解决方案有效。

页面是在AjaxSubmitLinkonSubmit() 方法和setReponsePage() 中打开的。我必须在发送之前验证表单,因此直接书签链接或表单不是这种情况。如果您在单击后直接打开,则添加到标签 target="_blank" 有效。我必须先验证,然后尝试设置上述响应页面。

【问题讨论】:

标签: java wicket


【解决方案1】:

我从其他问答中的列表中找到了解决方案。 [1]

它说:

不要使用 ajax 按钮,它们不尊重目标属性。

我将尝试使用 ajaxlink 提交表单。我的验证适用于 ajax,但我可以使用

RequestCycle.get().find(AjaxRequestTarget.class)

获取所需的AjaxTarget[2]

来源:

[1]http://apache-wicket.1842946.n4.nabble.com/Open-new-Tab-via-form-target-td3624578.html

[2]How to get the AjaxRequestTarget inside Wicket's onBeforeRender() method of a component?

【讨论】:

  • 我的同事在我找到答案之前为我解决了这个问题。他继续使用 ajaxForm,但打开了一个target.appendJavaScript("window.open('"+ url +"');return false;"); 调用的链接。几乎相同的解决方案,只是不依赖ajaxLink 的功能。
【解决方案2】:

这个 'onclick' html 属性对我有用(至少在 IE、Firefox 和 Chrome 中):

<input onclick="target='_blank';return true;" type="submit" value="text on button"/>

好的,我不知道这到底是如何工作的,但我发现它比在你的 java 代码中做一些复杂的事情要聪明得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2019-09-09
    • 2011-04-09
    • 1970-01-01
    • 2017-04-07
    相关资源
    最近更新 更多