2016-02-02 24 views
0

我在Wicket有WebPagePageParameters,因此它可以通过BookMarkablePageLink使用。Wicket open在新标签上的书签页

我可以打开它也给:

setResponsePage(MyPage.class, params); 

,但我不能做的就是打开它的方式作为一个新的选项卡类似。

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

一)验证表单
B)打开成功验证
C)页面出现在新标签页。

如何制作零件c?我知道如何验证和打开页面,请帮助我了解选项卡的打开情况。

对于表格我给target="_blank",但没有帮助,也许是由于使用setResponsePage()方法的事实。

编辑:

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

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

+0

[wicket,按钮被点击时如何打开新选项卡]的可能重复(http://stackoverflow.com/questions/18121236/wicket-how-to-open-new-tab-when-button-is-点击) – thg

+0

@thg:其实不是。看我的答案。 – mico

回答

3

我发现从列表的解决方案在其它Q & A. [1]

它指出:

不使用ajax的按钮,他们不尊重target属性。

我会尝试使用ajaxlink提交表单。我的验证与阿贾克斯的工作,但我可以用

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?

+0

我找到答案之前,我的同事解决了我的问题。他留下了ajaxForm,但打开了一个链接'target.appendJavaScript(“window.open('”+ url +“'); return false;”);'call。几乎相同的解决方案,只是不依赖'ajaxLink'的功能。 – mico

1

此的 'onClick' HTML属性对我的作品(至少在IE,火狐和Chrome):

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

好吧,我不知道这是如何工作,但我找到它比在你的java代码中做一些复杂的东西要聪明得多。