Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在wicket中创建具有循环的链接列表_Java_Html_List_Loops_Wicket - Fatal编程技术网

Java 在wicket中创建具有循环的链接列表

Java 在wicket中创建具有循环的链接列表,java,html,list,loops,wicket,Java,Html,List,Loops,Wicket,我是Wicket的新手,所以我不确定这是不是一个愚蠢的问题,不管怎样,我都无法通过谷歌搜索stackoverflow找到答案 我试图创建一个由arraylist的内容生成的链接的html列表。这个列表的大小可能不同,所以我不能创建静态链接,它们必须由循环生成。列表在我的HomePage.html上,我希望所有这些链接都指向OtherPage.html,但参数不同。链接应该与我要传递的参数“name”同名。 我的“尝试”如下:(我在这里使用通用名称以保持简单) 这是我认为需要的html部分: &l

我是Wicket的新手,所以我不确定这是不是一个愚蠢的问题,不管怎样,我都无法通过谷歌搜索stackoverflow找到答案

我试图创建一个由arraylist的内容生成的链接的html列表。这个列表的大小可能不同,所以我不能创建静态链接,它们必须由循环生成。列表在我的HomePage.html上,我希望所有这些链接都指向OtherPage.html,但参数不同。链接应该与我要传递的参数“name”同名。 我的“尝试”如下:(我在这里使用通用名称以保持简单)

这是我认为需要的html部分:

<ul>
 <li wicket:id="list"></li>
</ul>

如果您使用的是
setResponsePage(OtherPage.class,pageParameters)
页面类必须有一个带PagaParameter参数的构造函数


或者只使用
setResponsePage(新的其他页面(名称))

我让它工作起来了。我不得不将链接添加到列表中,而忽略了标签。 下面是java代码。首先,我使用一个循环来添加所有链接

    RepeatingView list = new RepeatingView("list");
    for (final String s : names) {
        list.add(createLink(list.newChildId(), s));
    }
    add(list);
我为创建链接本身制定了一个单独的方法,以保持代码的整洁。以下是createLink的方法:

    public Link createLink(String linkName, final String name) {
        Link l = new Link(linkName) {
            @Override
            public void onClick() {
            PageParameters pageParameters = new PageParameters();
            pageParameters.add("name", name);
            setResponsePage(PatternPage.class, pageParameters);
        }

    };
    l.setBody(Model.of(name));
    return l;
}
html保持如下状态:

    <ul>
        <li wicket:id="list"></li>
    </ul>

不是其他页面不起作用。这是主页不起作用的,因为我正在努力制作列表。如果我删除了创建列表的代码,页面就可以正常工作。我尝试使用工作参数向OtherPage添加一个静态链接,结果主页和OtherPage显示正常。
Last cause: null
WicketMessage: Can't instantiate page using constructor 'public paf.assignment3.HomePage(org.apache.wicket.request.mapper.parameter.PageParameters)' and argument ''. An exception has been thrown during construction!
    RepeatingView list = new RepeatingView("list");
    for (final String s : names) {
        list.add(createLink(list.newChildId(), s));
    }
    add(list);
    public Link createLink(String linkName, final String name) {
        Link l = new Link(linkName) {
            @Override
            public void onClick() {
            PageParameters pageParameters = new PageParameters();
            pageParameters.add("name", name);
            setResponsePage(PatternPage.class, pageParameters);
        }

    };
    l.setBody(Model.of(name));
    return l;
}
    <ul>
        <li wicket:id="list"></li>
    </ul>