gpt4 book ai didi

java - Wicket - 多次打印列表中的 getlist()

转载 作者:行者123 更新时间:2023-12-01 09:11:39 24 4
gpt4 key购买 nike

HomePage.java

Table table = new Table("table");
List<String> list = (List<String>) table.getList();
System.out.println("accessed list:" + list); //returns list from Table.java

add(new ListView("listview", list) {
protected void populateItem(ListItem item) {

item.add(new Label("name", list.get(1)));
item.add(new Label("type", list.get(3)));
}
});

Table.java中的方法 -

public List<String> getList() {

return list;
}

HomePage.html

<table class="table">
<tr wicket:id="listview">
<td><span wicket:id="name"></span></td>
<td><span wicket:id="type"></span></td>
</tr>
</table>

HomePage.java中,

  add(new ListView("listview", list) {
protected void populateItem(ListItem item) {

item.add(new Label("name", list.get(0))); // printing the value at 1st position multiple times.
item.add(new Label("type", list.get(1))); // printing the value at 2nd position multiple times.
}
});

我的列表由 8 个字符串元素组成,因此其打印 nametype 各 8 次。任何人都可以建议如何仅打印一次以及如何添加第二行在表(HomePage.html)中具有相同的 wicket id:listview。我只是一个初学者。任何帮助将不胜感激。谢谢

编辑 -

我的列表包含 - [名称、abc、类型、大文本、名称、bcd、类型、数字]实际上这是一个 JSON。我已经解析了 JSON 并创建了一个列表,将其传递给 ListView 以在表中显示。我已经在 Table.java 中解析并创建了一个 List 。我在 HomePage.java 中有 ListView ,因此在 HomePage.java -

中使用了此代码
Table table = new Table("table");
List<String> list = (List<String>) table.getList();
System.out.println("accessed list:" + list); //returns list from Table.java

尝试将此列表值传递给 HomePage.java 中的 ListView 以在表格中显示。但使用代码 item.add(new Label("name", list.get(1))); ,其打印多次,即作为列表的大小。

最佳答案

我不明白你到底想做什么,但我认为最好的方法是创建一个包含名称和类型属性的 POJO:

public class MyPojo {
private String name;
private String type;
public MyPojo(String name, String type) {
super();
this.name = name;
this.type = type;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}

}

然后使用该 POJO 作为模型对象创建一个简单的 Listview:

HTML 代码:

<table class="table">
<tr wicket:id="listview">
<td><span wicket:id="name"></span></td>
<td><span wicket:id="type"></span></td>
</tr>
</table>

JAVA代码:

List<MyPojo> list = new ArrayList<MyPojo>();
//fill your list with the values you want to display
for (int i = 1; i <= 8; i++) {
MyPojo myPojo = new MyPojo("name" + i, "type" + i);
list.add(myPojo);
}
//and then use a ListView component
add(new ListView<MyPojo>("listview", list) {
protected void populateItem(ListItem<MyPojo> item) {
MyPojo myPojo = item.getModelObject();
item.add(new Label("name", myPojo.getName()));
item.add(new Label("type", myPojo.getType()));
}
});

关于java - Wicket - 多次打印列表中的 getlist(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com