Wicket 1.5和获取页面实例的URL

Wicket 1.5和获取页面实例的URL,url,wicket,wicket-1.5,Url,Wicket,Wicket 1.5,在Wicket 1.5中,获取页面实例URL的正确方法是什么 在Wicket 1.4.x中,这起作用: MyPage page=newmypage(一些,参数); getRequestCycle().urlFor(第页).toString()文件 从中删除了大量不同版本的urlFor(),其中包括我在Wicket 1.4中使用的版本。org.apache.Wicket.RequestCycle.urlFor被重命名为org.apache.Wicket.request.cycle.Request

在Wicket 1.5中,获取页面实例URL的正确方法是什么

在Wicket 1.4.x中,这起作用:

MyPage page=newmypage(一些,参数);
getRequestCycle().urlFor(第页).toString()文件

从中删除了大量不同版本的
urlFor()
,其中包括我在Wicket 1.4中使用的版本。

org.apache.Wicket.RequestCycle.urlFor被重命名为org.apache.Wicket.request.cycle.RequestCycle.urlFor(请参阅)

[编辑] 我的错。试一试

RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(urlFor(MyPage.class,null).toString()));
(摘自)试试看

RequestUtils.toAbsolutePath(urlFor(MyPage.class, params).toString(), "/");

有关(稀少的)详细信息,请参见和。。。但是界面应该是非常自我解释的。只需提供目标类和PageParams对象,就可以(大部分)完成您需要的:org.apache.wicket.request.cycle.RequestCycle#urlFor(IRequestHandler)


我不知道为什么没有迁移。我猜是因为它没有被广泛使用…

这不是问题所在。问题在于urlFor()方法的接口在1.4->1.5升级中发生了更改。该方法生成指向MyPage的静态链接,其中创建的新MyPage实例没有参数或PageParameters构造函数。我需要一个为现有页面实例(new MyPage(“somevalue”、“someothervalue”,等等))创建URL的版本,该版本被否决,因为问题明确涉及页面实例(而不是页面类型)。这仅适用于没有参数构造函数或以PageParameters为参数的页面实例。MyPage既不是。被否决的原因是问题明确涉及页面实例(不是页面类型)。实际上这样做也有效,而且更短:
getRequestCycle().urlFor(YourPage.class,null)
@Glide:No。这不一样。OP请求页面实例。是的,忽略我的评论。
cycle.urlFor(new RenderPageRequestHandler(new PageProvider(page)))