Vaadin 一对多和网格 binding.Property 未找到
Vaadin one to many and Grid binding.Property not found
Customer 实体与实体 Address 具有一对多关系,因此 List<Address>
getAddress 在 Customer.Address 中有一个 Email 字段。
例如,要从第一个客户那里收到一封电子邮件,您可以 customer.getAddress.get(0).getEmail
当我绑定到 Customer.class 网格时,setColumns("customerid","address.email") 会抛出异常 属性 未找到。
如果我执行 addColumn(customer->customer.getAddress.get(0).get email).setHeader(email) 它会显示电子邮件。
但这是第一个 customer.How 为所有客户做同样的事情吗?
List
的默认演示文稿是 toString()
。您需要创建一个渲染器来很好地显示列表。为了获得更好的性能,您可以创建 LitRenderer. See also the Lit documentation for repeating templates.
grid.addColumn(LitRenderer.<Customer>of("""
${item.address.map((adr) =>
html`<span>${adr.email}</span><br />`
)}
""").withProperty("address", Customer::getAddress));
看起来像这样:
也许可以将 span
元素替换为 <a href="mailto:${adr.email}">${adr.email}</a>
以获得更好的用户体验。
Customer 实体与实体 Address 具有一对多关系,因此 List<Address>
getAddress 在 Customer.Address 中有一个 Email 字段。
例如,要从第一个客户那里收到一封电子邮件,您可以 customer.getAddress.get(0).getEmail
当我绑定到 Customer.class 网格时,setColumns("customerid","address.email") 会抛出异常 属性 未找到。
如果我执行 addColumn(customer->customer.getAddress.get(0).get email).setHeader(email) 它会显示电子邮件。
但这是第一个 customer.How 为所有客户做同样的事情吗?
List
的默认演示文稿是 toString()
。您需要创建一个渲染器来很好地显示列表。为了获得更好的性能,您可以创建 LitRenderer. See also the Lit documentation for repeating templates.
grid.addColumn(LitRenderer.<Customer>of("""
${item.address.map((adr) =>
html`<span>${adr.email}</span><br />`
)}
""").withProperty("address", Customer::getAddress));
看起来像这样:
也许可以将 span
元素替换为 <a href="mailto:${adr.email}">${adr.email}</a>
以获得更好的用户体验。