Java Tapestry错误:不包含自动生成所需的公共构造函数
我在通过列表显示Mysql数据库中的一些评论时遇到问题 错误: SetupRender[Details:grid]中的渲染队列错误:读取组件详细信息的参数“source”失败:grid:Class com.mycompany.licenta.data.interfataRecenenzii不包含自动生成所需的公共构造函数 有谁能帮我说说这有什么不对吗? 我希望这是可以理解的。 我的项目中还有另一个界面,用于显示数据库中的其他内容,所有内容都在同一个包中/但即使我将其放在其他包中,错误仍然是一样的。可以吗 我的列表类代码为: 我的界面: 我将在其中显示包含评论的列表的page类: 将在其中显示的tml页面组件Java Tapestry错误:不包含自动生成所需的公共构造函数,java,database,interface,tapestry,Java,Database,Interface,Tapestry,我在通过列表显示Mysql数据库中的一些评论时遇到问题 错误: SetupRender[Details:grid]中的渲染队列错误:读取组件详细信息的参数“source”失败:grid:Class com.mycompany.licenta.data.interfataRecenenzii不包含自动生成所需的公共构造函数 有谁能帮我说说这有什么不对吗? 我希望这是可以理解的。 我的项目中还有另一个界面,用于显示数据库中的其他内容,所有内容都在同一个包中/但即使我将其放在其他包中,错误仍然是一样的
@SessionState
private InterfataRecenzii dataSources;
您无法@SessionState接口,因为tapestry在从会话读取字段时不知道要实例化哪个实现类。
尝试替换:
@SessionState
private ListaRecenzii dataSources;
与:
此外,您还可以避免在Details.java中编写getRecenzi和setRecenziRecenzii的样板,只需将@Property添加到Recenzii字段,.tml就可以访问它
package com.mycompany.licenta.pages;
import com.mycompany.licenta.data.IDataSource;
import com.mycompany.licenta.data.Hotel;
import com.mycompany.licenta.data.Hotel;
import com.mycompany.licenta.data.IDataSource;
import com.mycompany.licenta.datarecenzii.InterfataRecenzii;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.SessionState;
import com.mycompany.licenta.datarecenzii.Recenzie;
import java.util.List;
public class Details {
@SessionState
private IDataSource dataSource;
private Hotel hotel;
@SessionState
private InterfataRecenzii dataSources;
private Recenzie recenzie;
public void setHotel(Hotel c)
{
this.hotel = c;
}
public Hotel getHotel()
{
return hotel;
}
void onActivate(long id)
{
hotel = dataSource.getHotelById(id);
}
public List<Recenzie> getAllRecenzii()
{
return dataSources.getAllRecenzii();
}
public Recenzie getRecenzie()
{
return recenzie;
}
public void setRecenzie(Recenzie recenzie)
{
this.recenzie = recenzie;
}
}
<t:grid t:source="allRecenzii" rowsPerPage="2" row="recenzie">
</t:grid>
@SessionState
private InterfataRecenzii dataSources;
@SessionState
private ListaRecenzii dataSources;