Wicket 在新选项卡上打开书签页面

Wicket open Bookmarkable page on new tab

我在 Wicket 中有一个带有 PageParametersWebPage,因此可以通过 BookMarkablePageLink.

使用它

我也可以打开它:

 setResponsePage(MyPage.class, params);

,但我不能做的是以类似于新标签页的方式打开它。

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

a) validate form
b) open the page on successful validation
c) page appearing in a new tab.

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

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

编辑:

这不是 Open new Tab when button is clicked 的副本,因为 none 的解决方案有效。

使用 setReponsePage()AjaxSubmitLinkonSubmit() 方法中打开页面。我必须在发送前验证表格,因此直接 Bookmarkable link 或表格不是这种情况。添加到标签 target="_blank" 如果你点击后直接打开就可以了。我必须先验证,然后我尝试像上面所说的那样设置响应页面。

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

它指出:

dont use an ajax button, they do not respect the target attribute.

我将尝试使用 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?

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

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

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