java – 在PlayFramework中自定义CRUD list.html
你好
我正在尝试为播放应用程序的CRUD部分自定义list.html视图. 我的模特是这样的 我有一个与其他对象有关系的对象,如下所示: @Entity public class MyObjectA extends Model { @Required public String myObjectAName; ... @Required @ManyToOne public MyObjectB myObjectB; } 现在在我覆盖的list.html中,我有这个 <div id="crudListTable"> #{crud.table fields:['myObjectB','myObjectAName'] /} </div> 现在,在浏览器中调用以下url http://myplayapp/admin/myObjectAs时,执行此代码将显示类似的内容 myObjectB __ myObjectAName MyObjectB [1] __嘿这是myObjectAName的名字 注意在我的MyObjectB中使用[]中的Object名称和对象id. 所以要在上面的列表中显示MyObjectB的myObjectBName属性,我试试这个: <div id="crudListTable"> #{crud.table fields:['myObjectB.myObjectBName','myObjectAName'] /} </div> 但后来我得到了这个错误
当然MyObjectB有一个公共属性myObjectBName 那么我在这里做错了什么? 解决方法
它不起作用,因为fields参数只是要显示要显示的类的字段名称列表(此处为MyObjectA),而“myObjectB.myObjectBName”不是MyObjectA中字段的名称.
有两种方法可以做到这一点: 简单的解决方案是覆盖MyObjectB的toString()方法.这样做的缺点是,每次显示MyObjectB时都会使用相同的字符串,这可能不是您想要的. 例: public class MyObjectB extends Model { // ... @Override public String toString(() { return this.myObjectBName; } } 列表特定解决方案是使用 例: #{crud.table fields:['myObjectB','myObjectAName']} #{crud.custom 'myObjectB'} ${object.myObjectB.myObjectBName} #{/crud.custom} #{/crud.table} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |