试试这样写:
<logic:iterate id="em" name="EnrolmentMessages" scope="request" >
<tr>
  <td align="center"><bean:write name="em" property="functionName"/></td>
  <td align="center">
     <struts-bean:define id="em2" name="em" property="enrolmentmessagehabitus"/>
     <bean:write name="em2" property="name"/>
  </td>
  <td align="center"><bean:write name="em" property="releaseDate"/></td>
  <td align="center">
    <a href="#">查看</a>&nbsp;|&nbsp;
    <a href="#">修改</a>&nbsp;|&nbsp;
    <a href="#">删除</a>
  </td>
</tr>
</logic:iterate>

解决方案 »

  1.   

    <td align="center">
      <bean:define id="emh" name="em" property="enrolmentmessagehabitus"/>
      <bean:write name="emh" property="habitusName"/>
    <td>改了一下,还是不行,报这个错:
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    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)
    com.myjobnet.struts.myactionservlet.MyActionServlet.process(MyActionServlet.java:12)
    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)
    root cause javax.servlet.ServletException: Exception thrown by getter for property habitusName of bean emh
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
    org.apache.jsp.WEB_002dINF.jsp.RegulateEnrolmentMessage_jsp._jspService(RegulateEnrolmentMessage_jsp.java:260)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    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)
    com.myjobnet.struts.myactionservlet.MyActionServlet.process(MyActionServlet.java:12)
    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)
      

  2.   

    <logic:iterate id="em" name="EnrolmentMessages" scope="request" type="...">
    没有类型。无法解析
      

  3.   

    <logic:iterate id="em" name="EnrolmentMessages" scope="request" >
    <tr>
      <td align="center"><bean:write name="em" property="functionName"/></td>
      <bean:define id="subobj" name="em" property="enrolmentmessagehabitus"/>
      <td align="center"><bean:write name="subobj" property="name"/></td>
      <td align="center"><bean:write name="em" property="releaseDate"/></td>
      <td align="center">
        <a href="#">查看</a>&nbsp;|&nbsp;
        <a href="#">修改</a>&nbsp;|&nbsp;
        <a href="#">删除</a>
      </td>
    </tr>
    </logic:iterate>
      

  4.   

    问题已经解决,写法<bean:write name="em" property="enrolmentmessagehabitus.name"/>是可以的,只是在Hibernate中,lazy="true"属性起了作用,取不到数据,我将set,many-to-one中所有都加上lazy="false"就OK了,谢谢大家
      

  5.   

    楼上的这样不好,你每读取一次数据那不是把关联的都取出来?在你的执行service(Hibernate事务内)将对象成员数据取出来。或者直接用Open Session In View
      

  6.   

    我用的是方法是继承Spring提供的Hibernate模板类,调用方法只需要
    List list = getHibernateTemplate().find("from Enrolmentmessage as e where e.corporationuser.corporationUserId = ?", corporationuserId);
    这么一句,请问怎么在提交之前把数据放到临时变量中呢....