遇到 Field or property ‘id’ cannot be found on object of type ‘***’该怎么办?

问题描述

在为页面添加自定义数据集的时候,用到了roo框架本身自带的table.tagx,参考roo自动生成的list.xml代码来编写自己的列表视图时,却出现了Field or property 'id' cannot be found on object of type '***'的提示。

解决办法

分析 Field or property 'id' cannot be found on object of type '***' 一句的内容,意思是数据对象缺少 id 属性。

打开 table.tagx 文件,观察到如下参数定义:

由此可得,该table tag需要数据对象有identifier属性,默认属性名为 id,如下所示:

观察 typeIdFieldName 的调用情况,注意到以下几行代码:

这里对itemId变量进行了赋值

可以看出itemId的作用是为 show、update、delete这些操作提供正确的访问路径。

由于传到此页面的数据对象没有添加roo的注解,所以没有自动生成id属性。所以修改 * 类如下即可:

并且要对其进行赋值:

tomcat成功运行!

发表评论

电子邮件地址不会被公开。