我是一位经验丰富的Wicket用户,但是我第一次涉足1.5并且mountPage()语法正在打败我。
我显然做错了什么,因为我无法对有同样问题的人提出任何建议。所以这就是:
这就是我在init()方法中所拥有的:
@Override
public void init()
{
super.init();
System.out.println("mounting: /requirement/${id}");
mountPage("/requirement/${id}", RequirementPage.class);
}
我已经通过将“需求”部分更改为其他内容并返回来验证了这一点。这是RequirementPage的(唯一)构造函数:
public RequirementPage()
{
try
{
PageParameters params = getPageParameters();
System.out.println("named keys: " + params.getNamedKeys());
System.out.println("index keys: " + params.getIndexedCount());
StringValue value = params.get("id");
System.out.println("requirement: " + value);
在我的服务器控制台(Jetty8)中,我在启动时看到了这一点:
mounting: /requirement/${id}
当我向/ requirement / 0发出请求时,我看到了:
named keys: []
index keys: 0
requirement: null
我已经看了很多事情,但是从维基或其他例子所显示的内容来看,我看不出有什么不同。
感谢任何帮助。
感谢,
-James
答案 0 :(得分:1)
你需要为Wicket提供一个带有PageParameters的构造函数,否则wicket不可能将这些参数包装起来并提供给你的页面。
除此之外,您可以通过getRequestCycle().getRequest().getRequestParameters()
访问请求参数,而无需使用包含页面参数的构造函数,但是只要您喜欢wicket来管理和安装页面和参数并将其设为可收藏,就必须提供默认构造函数,有或没有pageparameters,根据您的接收参数要求而定。
答案 1 :(得分:0)
你可以试试这个;
@Override
public void init()
{
super.init();
mountPage("requirement", RequirementPage.class);
}
然后像这样调用url“http:// localhost:8080 / requrement?id = 111”然后你可以使用你的构造函数获取id。但是你可以像这样使用你的网页构造函数;
public RequirementPage(PageParameters parameters)
{
...
}