我已在此表单中装入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
答案 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()
。