Java + HTML, 如何显示列表?
Java + HTML, How to display list?
我正在使用 Netbeans 来显示一个简单的列表,
它正在与 "list of string" 合作,
但无法成功 "list of 'customer'"
我想显示客户的姓名,年龄
这是我的代码:
public class Customer {
private String name;
public void setName(String name) { this.name = name; }
public String getName(){ return name;}
public Customer(String name){
this.name = name;
}
}
客户反对
public final SimpleListProperty<Customer> Customers = new SimpleListProperty<>(this, "Customers", FXCollections.observableArrayList());
添加客户
Customer customer = new Customer('test');
Customers.getValue().add(customer);
界面
<div class="row">
<ul class="col s12 collection" data-bind="foreach: Customers">
<li class="collection-item">
<span data-bind="text: $data.name"></span>
</li>
</ul>
</div>
我尝试了以下所有方法
<span data-bind="text: $data"></span>
<span data-bind="text: $data.name"></span>
<span data-bind="text: $name"></span>
没有任何效果,只出现空列表。
但是当我将列表更改为(简单字符串列表)时,它工作正常。
我也试过"private String name;"和"public String name;"
任何帮助,请
如果您正在使用 Knockout, then you should do it like the example in the documentation:
<tbody data-bind="foreach: people">
<tr>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
这意味着:
<div class="row">
<ul class="col s12 collection" data-bind="foreach: Customers">
<li class="collection-item">
<span data-bind="text: name"></span>
</li>
</ul>
</div>
这是为了防止有人遇到同样的问题,
我没有修复它,但我找到了解决方法。
根据 "AKSW" 建议,我使用了 .toString() 覆盖。
现在的问题是如何分别显示姓名,年龄,.....,
我使用 html 绑定而不是文本:
<div data-bind="html: $data.toString()"></div>
然后我在 HTML 中格式化 "toString()" 就像我想要的那样
@Override
public String toString()
{
return "<span>Name</span><span>Age</span>";
}
现在我可以得到我需要的结果了。
谢谢大家
我正在使用 Netbeans 来显示一个简单的列表,
它正在与 "list of string" 合作,
但无法成功 "list of 'customer'"
我想显示客户的姓名,年龄
这是我的代码:
public class Customer {
private String name;
public void setName(String name) { this.name = name; }
public String getName(){ return name;}
public Customer(String name){
this.name = name;
}
}
客户反对
public final SimpleListProperty<Customer> Customers = new SimpleListProperty<>(this, "Customers", FXCollections.observableArrayList());
添加客户
Customer customer = new Customer('test');
Customers.getValue().add(customer);
界面
<div class="row">
<ul class="col s12 collection" data-bind="foreach: Customers">
<li class="collection-item">
<span data-bind="text: $data.name"></span>
</li>
</ul>
</div>
我尝试了以下所有方法
<span data-bind="text: $data"></span>
<span data-bind="text: $data.name"></span>
<span data-bind="text: $name"></span>
没有任何效果,只出现空列表。 但是当我将列表更改为(简单字符串列表)时,它工作正常。
我也试过"private String name;"和"public String name;"
任何帮助,请
如果您正在使用 Knockout, then you should do it like the example in the documentation:
<tbody data-bind="foreach: people"> <tr> <td data-bind="text: firstName"></td> <td data-bind="text: lastName"></td> </tr> </tbody>
这意味着:
<div class="row">
<ul class="col s12 collection" data-bind="foreach: Customers">
<li class="collection-item">
<span data-bind="text: name"></span>
</li>
</ul>
</div>
这是为了防止有人遇到同样的问题,
我没有修复它,但我找到了解决方法。
根据 "AKSW" 建议,我使用了 .toString() 覆盖。
现在的问题是如何分别显示姓名,年龄,.....,
我使用 html 绑定而不是文本:
<div data-bind="html: $data.toString()"></div>
然后我在 HTML 中格式化 "toString()" 就像我想要的那样
@Override
public String toString()
{
return "<span>Name</span><span>Age</span>";
}
现在我可以得到我需要的结果了。
谢谢大家