我在Wicket中使用WebPage
PageParameters
,因此可以通过BookMarkablePageLink
使用它。
我也可以打开它:
setResponsePage(MyPage.class, params);
,但我不能做的就是像新标签一样打开它。
我使用表单并在onSubmit()
-method中,我想调用页面并将其放置到选项卡。我无法弄清楚我怎么能
a)验证表格
b)成功验证后打开页面
c)页面出现在新标签中。
如何制作零件c
?我知道如何验证和打开页面,请帮助我打开选项卡。
对于我提供target="_blank"
的表单,但没有帮助,可能是因为使用了setResponsePage()
方法。
修改
这不是Open new Tab when button is clicked的重复,因为没有一个解决方案有效。
使用AjaxSubmitLink
在onSubmit()
setReponsePage()
方法中打开页面。我必须在发送之前验证表单,因此直接Bookmarkable链接或表单不是一个案例。如果您在点击后直接打开,则添加到代码target="_blank"
会有效。我必须先验证,然后尝试设置如上所述的响应页面。
答案 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代码中做一些复杂的东西要聪明得多。