Page"页面上的Apache Wicket事件被发送到......"

时间:2015-09-05 11:14:58

标签: wicket wicket-6 wicket-1.6

我已在此表单中装入Page(带有一个预定义参数):

mountPage("/lista/${variant}", StronaEntityV2.class);

当参数"变体"给予一切都好。但是当参数不存在时(从应用程序的角度来看也可以)URL是以表格形式构建的

wicket/bookmarkable/all....package...StronaEntityV2?8

也没关系,但我会知道那种情况。在简单的情况下(使用一个预定义的参数),检查参数是好的,但是更复杂的并不是那么简单(并且必须在不同的地方维护代码)。 我理想的成像解决方案是事件

page.OnPageIsMountedOn(URL to_me)

我会接受广泛的解决方案。

正式:请将同义词整合到标签wicket-1.6& wicket-6,并创建新的wicket-7

1 个答案:

答案 0 :(得分:3)

您的页面配置为收听/lista/${variant}

执行:setResponsePage(StronaEntityV2.class, paramsWithVariant)时,Wicket将使用挂载点并生成:/lista/variantValue

但是如果你这样做:setResponsePage(StronaEntityV2.class),即没有提供PageParameters,那么Wicket将忽略/lista/${variant}(因为它不匹配)并且将产生"默认"页面网址,即/wicket/bookmarkable/com.example.StronaEntityV2

因此应用程序控制应该使用哪个URL。

您可以使用可选参数占位符:/lista/#{variant}。请注意,我现在使用的是#而不是$。这样,当没有提供 variant 参数时,Wicket将生成/lista/。在页面构造函数中,您将知道URL总是" / lista"但参数可能 null ,因此最好使用:pageParameters.get("variant").toXyz(defaultValue).toOptionalXyz()