0

我有 2 个实体是实体会议和会议议程。

我像这样从数据库中编写代码实体类(EJB)。

public class Meeting implements Serializable {
......
 @XmlTransient
    public Collection<MeetingAgenda> getMeetingAgendaCollection() {
        return meetingAgendaCollection;
    }

    public void setMeetingAgendaCollection(Collection<MeetingAgenda> meetingAgendaCollection) {
        this.meetingAgendaCollection = meetingAgendaCollection;
    }
.......
}

和这样的实体班会议议程。......

public class MeetingAgenda implements Serializable {
....
    public String getAgenda() {
        return agenda;
    }
    public void setAgenda(String agenda) {
        this.agenda = agenda;
    }
....
}

方法 getMeetingAgendaCollection 是来自会议实体的关系。然后,在我的控制器 servlet 中,我像这样调用 EJB。

public class ControllerServlet extends HttpServlet {
    @EJB
    private RapatFacadeLocal rapatFacade;

public void init() throws ServletException { 
        // store category list in servlet context      
   getServletContext().setAttribute("meetings", rapatFacade.findAll());
}
......

我想显示来自表实体会议和会议议程的数据......但我不能......请帮助......

我在 JSP 页面中编写代码.. 像这样..

 <c:forEach var="meeting" items="${meetings}">
<td> MeetingCode :  ${meeting.meetingCode} </td>
<td> Meeting :  ${meeting.meeting} </td>
<td> Agenda :  ${meeting.getMeetingAgendaCollection} </td> 
</c:forEach>

如何使用 getMeetingAgendaCollection 显示数据议程 ????

谢谢你的帮助。

4

1 回答 1

0

我终于在我的控制器 servlet 中找到了解决方案

  Rapat selectedMeeting = rapatFacade.find(Long.parseLong(id));
                     request.setAttribute("meetingDetails",selectedMeeting); 


  Collection<RapatAgenda> agenda = selectedMeeting.getRapatAgendaCollection();
                     request.setAttribute("meetingAgendas", agenda); 

在我的 JSP 客户端中

.... 
<c:forEach var="agenda" items="${meetingAgendas}"> 
  <td> ${agenda.agenda}  </td>
 </c:forEach>
...

但我进一步发现了问题。如果我想显示与实体会议相关的另一个实体(一对多)。我写这样的代码。

Rapat selectedMeeting = rapatFacade.find(Long.parseLong(id));
                     request.setAttribute("meetingDetails",selectedMeeting); 

 Collection<RapatAgenda> agenda = selectedMeeting.getRapatAgendaCollection();
                     request.setAttribute("meetingAgendas", agenda);

 Unit selectUnit = unitFacade.find(selectedMeeting.getUnitInisiatorId());
                     request.setAttribute("initiator", selectUnit);

我不会 selectedMeeting.getUnitInisiatorId() 值是整数,如果我手动编写,

Unit selectUnit = unitFacade.find(Long.parseLong(1));
                         request.setAttribute("initiator", selectUnit);

问题解决了..

what selectedMeeting.getUnitInisiatorId() syntax is correct ..?

请帮忙。。谢谢。。

于 2012-12-16T03:24:58.793 回答