考虑一个重定向到另一个页面的 Wicket 网页(基于此处省略的一些逻辑):
public class SomePage extends WebPage {
public SomePage(PageParameters parameters) {
setResponsePage(AnotherPage.class);
setRedirect(true);
}
}
我需要将 PageParameters 传递到其他页面,这似乎是执行此操作的方法:
setResponsePage(new AnotherPage(parameters));
但是,当创建像这样的新 Page 对象时,我最终会得到一个 URL,例如/?wicket:interface=:1::::
而不是干净的/another
。 AnotherPage 定义为:
@MountPath(path = "another")
public class AnotherPage extends WebPage {
// ...
}
(其中 MountPath 来自 org.wicketstuff.annotation.mount 包。)
所以,我的问题是:
- 还有其他传递参数的方法吗?
- 有什么方法可以让 URL 保持美观吗?上述是 Wicket Stuff 的特定限制而不是核心 Wicket 吗?
Update
呵呵,原来如此any建议的方法是否有效,以及also我最初尝试过的——setResponsePage(new AnotherPage(parameters))
——只要我删除setRedirect(true)
。在这种情况下,URL 确实保持不变(SomePage 的路径),并且我刚刚意识到我真的应该从一开始就提到,如果这样做也没关系(只要它“漂亮”并且参数被传递)!
该页面(“SomePage”)根据查询参数将请求分派到几个可能的结果页面,这些页面看起来不同,但通过相同的 URL 访问。我试图尽可能通用和简约地表述这个问题,但由于我遗漏了相关信息,所以出现了问题。 :-/
如果这对其他人来说很奇怪、不清楚或无用,我很抱歉。如果您对重命名有任何建议,请随时发表评论。