页面 "page was mouted on ..." 上的 Apache Wicket 事件

Apache Wicket event on Page "page was mouted on ..."

我以这种形式安装页面(带有一个预定义参数):

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

当给出参数"variant"时,一切正常。但是当参数不存在时(从应用程序的角度来看也可以)URL 以

形式构建
wicket/bookmarkable/all....package...StronaEntityV2?8

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

page.OnPageIsMountedOn(URL to_me)

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

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

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

当您这样做时:setResponsePage(StronaEntityV2.class, paramsWithVariant) 那么 Wicket 将使用挂载点并生成:/lista/variantValue.

但是如果您这样做:setResponsePage(StronaEntityV2.class),即没有提供 PageParameters,那么 Wicket 将忽略 /lista/${variant}(因为它不匹配)并会生成一个 "default" 页面 url,即/wicket/bookmarkable/com.example.StronaEntityV2.

所以应用程序控制应该使用哪个url。

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