我已经以这种形式挂载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。
发布于 2015-09-05 12:19:24
您的页面配置为侦听/lista/${variant}。
当您完成:setResponsePage(StronaEntityV2.class, paramsWithVariant)时,Wicket将使用挂载点并生成:/lista/variantValue。
但是如果您这样做:setResponsePage(StronaEntityV2.class),即没有提供PageParameters,则Wicket将忽略/lista/${variant} (因为它不匹配),并生成一个“默认”页面url,即/wicket/bookmarkable/com.example.StronaEntityV2。
因此,应用程序控制应该使用哪个url。
您可以使用可选的参数占位符:/lista/#{variant}。注意,我现在使用的是#而不是$。这样,Wicket将在没有提供可变参数的情况下生成/lista/。在页面构造函数中,您将知道url始终是"/lista“,但参数可能为空,所以最好使用:pageParameters.get("variant").toXyz(defaultValue)或.toOptionalXyz()。
https://stackoverflow.com/questions/32412405
复制相似问题