所以@PostConstruct init 函数工作正常,我已经用 System.println() 对其进行了测试,但 JSF 仍然没有显示任何信息。任何建议如何解决此问题或如何以其他方式进行?
事件Bean
@PostConstruct
public void init()
{
events = dataAccess.loadEvents();
}
EventDAO -数据访问对象
public List<EventBean> loadEvents()
{
System.err.println("LOADING EVENTS BEGINING OF SESSION");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
System.err.println("LOADING EVENTS IN SESSION");
Criteria criteria = session.createCriteria(Dogadjaj.class);
List<Dogadjaj> dList = (List<Dogadjaj>) criteria.list();
session.getTransaction().commit();
session.close();
List<EventBean> beans = new ArrayList<EventBean>();
EventBean bean = new EventBean();
System.err.println("LOADING EVENTS OUT OF SESSION");
for(Dogadjaj entity : dList)
{
bean.setName(entity.getIme());
bean.setOffice(entity.getBlagajna().getIme());
bean.setDate(entity.getVreme().toString());
}
System.err.println("SAMPLE BEAN :" + bean.getName());
return beans;
}
系统输出
Severe: LOADING EVENTS IN SESSION
Info: Hibernate: select this_.EVENT_ID as EVENT_ID1_3_1_, this_.blagajna_OFFICE_ID as blagajna4_3_1_, this_.ime as ime2_3_1_, this_.vreme as vreme3_3_1_, blagajna2_.OFFICE_ID as OFFICE_I1_1_0_, blagajna2_.adresa as adresa2_1_0_, blagajna2_.email as email3_1_0_, blagajna2_.ime as ime4_1_0_, blagajna2_.telefon as telefon5_1_0_ from Dogadjaj this_ left outer join Blagajna blagajna2_ on this_.blagajna_OFFICE_ID=blagajna2_.OFFICE_ID
Severe: LOADING EVENTS OUT OF SESSION
Severe: SAMPLE BEAN :Mitar Miri?
JSF - 数据表
<f:view>
<h:form>
<h1><h:outputText value="List"/></h1>
<h:dataTable id="events" value="#{event.events}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{item.name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Office"/>
</f:facet>
<h:outputText value="#{item.office}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Date"/>
</f:facet>
<h:outputText value="#{item.date}"/>
</h:column>
</h:dataTable>
</h:form>