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>";
}

现在我可以得到我需要的结果了。

谢谢大家