试图在jsp页面上显示从数据库获取的数据(我使用的是带Hibernate的Struts 2)

试图在jsp页面上显示从数据库获取的数据(我使用的是带Hibernate的Struts 2),hibernate,jsp,struts2,displayobject,Hibernate,Jsp,Struts2,Displayobject,我试图使用Hibernate和Struts 2将数据从数据库显示到Jsp页面。虽然没有错误,但不会显示任何内容 我试图从其他帖子中找到解决方案,但没有找到 这是动作课 public class viewDayReportAction extends ActionSupport { private static final long serialVersionUID = 9149826260758390091L; //DayReportPersistence is the class whic

我试图使用Hibernate和Struts 2将数据从数据库显示到Jsp页面。虽然没有错误,但不会显示任何内容

我试图从其他帖子中找到解决方案,但没有找到

这是动作课

public class viewDayReportAction extends ActionSupport {

private static final long serialVersionUID = 9149826260758390091L;

//DayReportPersistence is the class which maps the table in hibernate
private List<DayReportPersistence> dayReportsList;
public List<DayReportPersistence> getDayReportsList() {
    return dayReportsList;
}
public void setDayReportsList(List<DayReportPersistence> dayReportsList) {
    this.dayReportsList = dayReportsList;
}

private DayReportPersistence dayReport;
public DayReportPersistence getDayReport() {
    return dayReport;
}
public void setDayReport(DayReportPersistence dayReport) {
    this.dayReport = dayReport;
}

private DayReportQuery dayReportQuery;
public viewDayReportAction() {
    dayReportQuery=new DayReportQuery();
}

@Override
public String execute(){ 
    this.dayReportsList=dayReportQuery.list();
    System.out.println(dayReportsList);
    //this statement prints the following in the tomcat output screen
    //[Hibernate.DayReportPersistence@1974acd, Hibernate.DayReportPersistence@1afe8ef,
    //Hibernate.DayReportPersistence@1974acd, Hibernate.DayReportPersistence@1afe8ef]
    //there are four objects because 4 records were fetched from the table

    return "success";
}
}
公共类viewDayReportAction扩展了ActionSupport{
私有静态最终长serialVersionUID=9149826260758390091L;
//DayReportPersistence是在hibernate中映射表的类
私人名单日报表列表;
公共列表getDayReportsList(){
返回日报表列表;
}
公共作废setDayReportsList(列表dayReportsList){
this.dayReportsList=dayReportsList;
}
私人dayReport持久性dayReport;
public DayReportPersistence getDayReport(){
返回日报告;
}
公共void setDayReport(DayReportPersistence dayReport){
this.dayReport=dayReport;
}
私有DayReportQuery DayReportQuery;
公共viewDayReportAction(){
dayReportQuery=新的dayReportQuery();
}
@凌驾
公共字符串execute(){
this.dayReportsList=dayReportQuery.list();
System.out.println(dayReportsList);
//此语句在tomcat输出屏幕中打印以下内容
//[冬眠。DayReportPersistence@1974acd,冬眠。DayReportPersistence@1afe8ef,
//冬眠。DayReportPersistence@1974acd,冬眠。DayReportPersistence@1afe8ef]
//有四个对象,因为从表中提取了4条记录
返回“成功”;
}
}
这是dayReportQuery.java,它执行查询并返回结果

public class DayReportQuery {

public List<DayReportPersistence> list(){
    Session session = HibernateConnection.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    List<DayReportPersistence> dayReportsList = null;
    try {
        dayReportsList = (List<DayReportPersistence>) session.createQuery(
            "from DayReportPersistence").list();
        session.getTransaction().commit();

    } catch (HibernateException e) {
        System.out.println(e.getMessage());
        session.getTransaction().rollback();

    }
    return dayReportsList;
}
}
公共类DayReportQuery{
公开名单(){
会话会话=HibernateConnection.getSessionFactory().getCurrentSession();
session.beginTransaction();
List dayReportsList=null;
试一试{
dayReportsList=(列表)session.createQuery(
“从DayReportPersistence”).list();
session.getTransaction().commit();
}捕获(休眠异常e){
System.out.println(e.getMessage());
session.getTransaction().rollback();
}
返回日报表列表;
}
}
这是我的jsp页面,它应该显示数据

<table>
<s:iterator value="dayReportsList" var="dayReport">
    <tr>
        <td><s:property value="Customer_Code"/></td>
        <td><s:property value="Contact_Code"/></td>
        <td><s:property value="Employee_Code"/></td>
        <td><s:property value="Enquiry_Code"/></td>
        <td><s:property value="Stage"/></td>
        <td><s:property value="Type"/></td>
        <td><s:property value="Date"/></td>
    </tr>
</s:iterator>
</table>


我不明白我做错了什么。

请确保DayReportPersistence类为您要查找的字段(如客户代码、联系人代码等)提供了正确的getter和setter

另外,我注意到这些变量都用下划线大写,而Java变量通常不这样

应该是

DayReportPersistence类中的getter应该是
getCustomerCode()

编辑:
资本化确实很重要。如果您的getter是
getContact\u code()
,则应将其称为
。请注意联系人代码中的小写字母“c”

除了命名约定之外,我可能会建议在使用Ryor action类的可准备实现触发execute方法之前设置列表。如果一个字段的名称不正确,那么它将是空的,如果列表不是空的或空的,您仍然应该在jsp上获得一些信息

public class viewDayReportAction extends ActionSupport implements Preparable{
    private static final long serialVersionUID = 9149826260758390091L;

    //DayReportPersistence is the class which maps the table in hibernate
    private List<DayReportPersistence> dayReportsList;

    public void prepare(){
        this.dayReportsList=dayReportQuery.list();
    }
    ...
}
公共类viewDayReportAction扩展了ActionSupport实现了可准备的{
私有静态最终长serialVersionUID=9149826260758390091L;
//DayReportPersistence是在hibernate中映射表的类
私人名单日报表列表;
公众假期准备(){
this.dayReportsList=dayReportQuery.list();
}
...
}
此方法将在execute方法之前触发,在execute中填充列表可能是您的问题。然后可以删除this.dayReportsList=dayReportQuery.list();从执行