Wicket在新选项卡上打开Bookmarkable页面

时间:2016-02-02 10:12:38

标签: java wicket

我在Wicket中使用WebPage PageParameters,因此可以通过BookMarkablePageLink使用它。

我也可以打开它:

 setResponsePage(MyPage.class, params);

,但我不能做的就是像新标签一样打开它。

我使用表单并在onSubmit() -method中,我想调用页面并将其放置到选项卡。我无法弄清楚我怎么能

  

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

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

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

修改

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

使用AjaxSubmitLinkonSubmit() setReponsePage()方法中打开页面。我必须在发送之前验证表单,因此直接Bookmarkable链接或表单不是一个案例。如果您在点击后直接打开,则添加到代码target="_blank"会有效。我必须先验证,然后尝试设置如上所述的响应页面。

2 个答案:

答案 0 :(得分:3)

我从其他Q& A的列表中找到了解决方案。 [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?

答案 1 :(得分:1)

这个' onclick' html属性适合我(至少在IE,Firefox和Chrome中):

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

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