Java 具有有状态页面的wicket url参数

Java 具有有状态页面的wicket url参数,java,url,wicket,Java,Url,Wicket,在我开发的一个应用程序上,我试图为应用程序的页面保留一个好的、可读的url。 我从url开始,如下所示: 其中,context是应用程序装载路径,param1和param2是传递给应用程序的一些参数。 问题是,当我移动到另一个页面时,url更改如下: 我在页面之间移动的方式如下: getRequestCycle().setResponsePage(新的其他页面(obj1、obj2、, 页面参数) 其中,obj1和obj2是页面初始化所需的对象。 正如我从帖子中了解到的 RequestCycle(

在我开发的一个应用程序上,我试图为应用程序的页面保留一个好的、可读的url。 我从url开始,如下所示: 其中,context是应用程序装载路径,param1和param2是传递给应用程序的一些参数。 问题是,当我移动到另一个页面时,url更改如下: 我在页面之间移动的方式如下:

getRequestCycle().setResponsePage(新的其他页面(obj1、obj2、, 页面参数)

其中,obj1和obj2是页面初始化所需的对象。 正如我从帖子中了解到的

RequestCycle().setResponsePage(第页)

使用时,创建不可设置书签且不显示参数的有状态页面

RequestCycle().setResponsePage(类pageClass,PageParameters
页面参数)

创建显示参数的无状态页面。 问题是我使用了第一个,因为我必须自己创建页面,以便将两个对象传递给它。 有没有办法保持url的原始可书签格式,并从中删除wicket的参数? 我尝试了这个网站和其他网站上发布的几乎所有建议,但没有一个适合我的情况,因为他们建议让wicket自己创建页面(第二个选项是setResponsePage)。 任何帮助都将不胜感激。
谢谢你的url示例,我看到你正在使用Wicket 1.4。我相信1.5会做你想做的事。在Wicket 1.4中,你可以通过使用HybridUrlCodingStrategy安装页面来获得类似的结果。

从你的url示例中,我看到你正在使用Wicket 1.4。我相信1.5会做你想做的事。在Wicket 1.4中,你可以可以通过使用HybridUrlCodingStrategy装载页面来获得类似的结果。

您是否尝试将页面装载到特定的url?该
../?param1=…
构造看起来不是很好。问题是url不是固定的-参数值甚至参数本身可能会从一个请求更改到另一个请求。这这不是一个问题,因为url是为用户生成的,我只想保持初始url固定(或几乎固定,只是不可读的wicket url)参数值可能会改变,这很好。但你仍然可以,这应该可以解决这个问题。你添加的链接中的帖子准确地描述了我的问题,但没有解决它。事实上,根据这篇帖子,wicket似乎不支持我打算做的事(在“不可书签的页面”部分)。它说,如果该页面是有状态的,并且没有wicket可以用来创建它的构造函数,那么该页面必须在代码中显式创建,并且只能通过重定向来访问。我的问题不在于访问该页面,而在于保持url的美观和可读性。还有,您的建议(装载到特定url)对于我的情况,这是不可能的,因为正如我所写的,参数本身可能会改变-有一组参数(几十个)这可能会被传递,也可能不会被传递。您是否尝试将页面装载到特定的url?该
../?param1=…
构造看起来不是很好。问题是url不是固定的-参数值甚至参数本身可能会从一个请求更改为另一个请求。这不是问题,因为正在为t生成url对于用户,我只想保持初始url固定(或几乎固定,只是不想保持无法读取的wicket url)参数值可能会改变,这很好。但你仍然可以,这应该可以解决这个问题。你添加的链接中的帖子准确地描述了我的问题,但没有解决它。事实上,根据这篇帖子,wicket似乎不支持我打算做的事(在“不可书签的页面”部分)。它说,如果该页面是有状态的,并且没有wicket可以用来创建它的构造函数,那么该页面必须在代码中显式创建,并且只能通过重定向来访问。我的问题不在于访问该页面,而在于保持url的美观和可读性。还有,您的建议(装载到特定url)对于我的情况,这是不可能的,因为正如我所写的,参数本身可能会改变-有一组参数(几十个)这可能会通过,也可能不会通过。如果这个策略不能完全满足您的要求,您可以尝试编写自己的策略,尽管在Wicket 1.4中这并不容易。在1.5中,在这方面做了很多改进。我尝试了HybridurlCodings策略和MixedParamurlCodings策略,并编写了自己的策略,但没有一个奏效。我注意到我的是s当重定向到具有getRequestCycle()的页面时。setResponsePage(新的其他页面(obj1、obj2、pageParameters)wicket根本不使用选定的url编码策略。为什么会这样?我如何才能让它使用首选策略?如果这个策略不完全符合您的要求,您可以尝试编写自己的策略,尽管在wicket 1.4中这并不容易。在1.5中,在这方面做了很多改进。我尝试了HybridUrlCodingStrategy以及MixedParamUrlCodingStrategy并编写了我自己的策略,但没有一个有效。我注意到的是,当使用getRequestCycle()重定向到页面时,setResponsePage(新的其他页面(obj1、obj2、pageParameters))wicket根本不使用所选的url编码策略。为什么会这样,我如何才能使其使用首选策略?