一个javabean文件名为AdrReport.java 有以下几个属性,等等:
private String reportNo;                             // 报表系统编号
private Set report_adrname = new HashSet();          //adr名称
private Set report_adrmeddetail = new HashSet();     //药物商品名称主要是这两个report_adrname、report_adrmeddetail 放到了set集合里面,如何去取出这两个名称字段的值?
hibernate的映射文件:AdrReport.hbm.xml(report_adrname,report_adrmeddetail 这两个名称字段都是一对多的关系),是这样配置的:
        <!-- 一张报表对应多个ADR名称 -->
        <set name="report_adrname" cascade="all" inverse="true" fetch="select" lazy="false">
          <key>
        <column name="reportNo"/>
          </key>
        <one-to-many class="com.adr.report.approvemanage.bean.ReportName"/>
       </set> 
       <!-- 一张报表对应多条药品信息 -->
        <set name="report_adrmeddetail" cascade="all" inverse="true" fetch="select" lazy="false">
          <key>
        <column name="reportNo"/>
          </key>
        <one-to-many class="com.adr.report.approvemanage.bean.AdrMedDetail"/>
       </set>关联了三张表分别是:adr报表(adrReport表)、adr名称表(ReportName表)、药物明细表(adrMedDetail表)在页面上要显示的就是:adr名称、药物名称、报告日期等需要显示的字段信息
我应该如何将它们进行关联起来,在页面上输出,我用了logic:iterate 标签进行输出,页面上我是这样写的,但它报错了,不知道该怎么去写???<table border=1 cellspacing=0 borderColor=#FFFFFF
bgcolor="#EFEFED" rules=all style=" WIDTH: 100%; ">
<tr>
<td class="mail_tabletitle" height="24">报告编号</td>
<td class="mail_tabletitle">药物名称</td>
<td class="mail_tabletitle">不良反应名称</td>
        <td class="mail_tabletitle">不良反应结果</td>
<td class="mail_tabletitle">报告单位</td>
<td class="mail_tabletitle">报告日期</td>
<td class="mail_tabletitle">接收时间</td>
</tr>
<tbody>
<logic:present scope="request" name="adrmeddetailist">
<logic:iterate id="listrow" name="adrmeddetailist">
<tr onMouseOver="javascript:this.bgColor='#DEE2E3';"
   onclick="javascript:if(this.bgColor=='#DEE2E3'){this.bgColor='#F0F0E8'}else{this.bgColor='#DEE2E3';}"
   onmouseout="javascript:this.bgColor='#F0F0E8';"
   nowrap="nowrap">
<td width="15%" align="center" class="mail_tabletitle">
${listrow.reportNo}
</td>
<td align=center>
        <logic:iterate id="adrnames" name="listrow" property="report_adrname">
${adrnames.report_adrname}
</logic:iterate>
</td>
<td align="center">
<logic:iterate id="medicationnames" name="listrow" property="report_adrmeddetail">
        ${medicationnames.report_adrmeddetail}
</logic:iterate>
</td>
<td align="center">
        ${listrow.result}
        </td>
<td align="center">
        ${listrow.orgName}
</td>
<td align="center">
${listrow.reportDate}
</td>
        <td align="center">
${listrow.reportDate}
        </td>
        <td align="center">
${listrow.receiveTime}
</td>
</logic:iterate>
</logic:present>
</tbody>
</table>这是要在页面上做显示的主要部分代码,但执行之后,报错了,报错的信息如下:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Unable to find a value for "report_adrname" in object of class "com.adr.report.approvemanage.bean.ReportName" using operator "."
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.report.approvemanage.dealapprove_jsp._jspService(dealapprove_jsp.java:442)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
com.adr.common.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:40)
root cause javax.servlet.jsp.el.ELException: Unable to find a value for "report_adrname" in object of class "com.adr.report.approvemanage.bean.ReportName" using operator "."
org.apache.commons.el.Logger.logError(Logger.java:481)
org.apache.commons.el.Logger.logError(Logger.java:498)
org.apache.commons.el.Logger.logError(Logger.java:611)
org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:340)
org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:899)
org.apache.jsp.report.approvemanage.dealapprove_jsp._jspService(dealapprove_jsp.java:261)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
com.adr.common.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:40)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28各位朋友帮帮小弟,怎么它们输出,页面上显示出来,谢谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【weixiangerdou】截止到2008-07-26 16:19:40的历史汇总数据(不包括此帖):
    发帖的总数量:34                       发帖的总分数:870                      每贴平均分数:25                       
    回帖的总数量:26                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:34                       结贴的总分数:870                      
    无满意结贴数:3                        无满意结贴分:145                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:8.82  %               无满意结分率:16.67 %                  
    敬礼!