首先我說明下,我有一個物料類(LendInf),它有個物料所在部門的外鍵類(TbDepart),本來我在lendlist.jsp通過action接收到的list然後打印出來,這個實現了,後來我在上面想放幾個多條件查詢的,其中放這個外鍵類通過下拉樞的形式,<bean:write name="tbDepart" property="departame"/>報錯,去掉上面的條件就能正常顯示了
高手們請看下面的:
 <center><font size="3">借出清單列表</font></center><br>
    <html:form action="/lendlist.do" method="post" focus="login">
    <div align="center">
       <table width=800>
   
    <tr align="left">
   
    <td>
    部       門:
    <select name="deid" style=" background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;" >
    <%  if(deid != null){ %>
    <option value="${deid }">${deid }</option>
    <%
    List<TbDepart> li2 = deptmanager.selectDepart(deid);
    for(int i1=0;i1<li2.size();i1++){%>
    <option value="<%=li2.get(i1).getDepartname() %>"><%=li2.get(i1).getDepartname() %></option>
    <%}%>
    <option value=""></option>
    <%}else{
    List<TbDepart> li3 = deptmanager.selectAllDepart(deid);
    %><option value=""></option><%
    for(int i3=0;i3<li3.size();i3++){
     %>
    <option value="<%=li3.get(i3).getDepartname() %>"><%=li3.get(i3).getDepartname() %></option>
    <%}} %>
    </select>
    </td><td width=10>&nbsp;</td>
    <td>
    輸入日期:<input type="text" name="editdate" id="editdate" onclick="getDateString(this,oCalendarChs)" value="${editdate }" style=" background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;" > 
    &nbsp;
    <input type=button width="120" class=btn1_mouseout onmouseover="this.className='btn1_mouseover'" onmouseout="this.className='btn1_mouseout'" name="find" value="查找" onclick="sub(this)">
    </td>
    </tr>
    </table>
    </div>
    
    <table align="center" width="850" bgcolor="#90D0FF" cellpadding="0" cellspacing="1">
<tr class="tdbg">
   
    <th align="center">部門</th>
    <th align="center">客戶</th>
    <th align="center">借出數量</th>
    <th align="center">借出人</th>
    <th align="center">借出日期</th>
    <th align="center">備注</th>
    <th align="center">編緝時間</th>
    <th align="center">編緝人</th>
    </tr>
    <logic:present name="list">
    <logic:iterate id="lend" name="list">
    <bean:define id="tbDepart" name="lend" property="tbDepart"/>
   
    <tr>    <td align="center"><bean:write name="tbDepart" property="departame"/></td>
    <td align="center"><bean:write name="lend" property="client"/></td>
  <td align="center"><bean:write name="lend" property="lendNumber"/></td>
  <td align="center" ><bean:write name="lend" property="lendMan"/></td>
  <td align="center"><bean:write name="lend" property="lendDate"/></td>
  <td align="center"><bean:write name="lend" property="merno"/></td>
  <td align="center"><bean:write name="lend" property="editDate"/></td>
<td align="center"><bean:write name="lend" property="editMan"/></td>
  </tr>
  </logic:iterate>
  <tr height="10" bgcolor="#E4EAEE">
<th colspan="40" height="10" valign="bottom" align="center"><br>
<pagetag:pages pageNo="${pageNo}" action="/LendBorrow/${requestScope.path}/lendlist.do?" allCount="${allCount}"></pagetag:pages>
<br></th>
</tr>
  </logic:present> 
    </table>
     </html:form>
  </body>
我去掉上面那個部門的條件查詢的話,頁面就會正常顯示,加上那個條件就會報下面的錯:
2009/7/22 下午 01:51:23 org.apache.catalina.core.StandardWrapperValve invoke
嚴重的: Servlet.service() for servlet action threw exception
javax.servlet.jsp.JspException: No getter method for property: "departame" of bean: "tbDepart"
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:987)
at org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)
at org.apache.jsp.WEB_002dINF.user.lendlist_jsp._jspx_meth_bean_005fwrite_005f0(lendlist_jsp.java:827)
at org.apache.jsp.WEB_002dINF.user.lendlist_jsp._jspService(lendlist_jsp.java:692)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

解决方案 »

  1.   

    No getter method for property: "departame" of bean: "tbDepart"
    departame属性没有get方法
      

  2.   

    有那個方法,如果我去掉<td>
      部      門:
      <select name="deid" style=" background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;" >
      <%  if(deid != null){ %>
      <option value="${deid }">${deid } </option>
      <%
      List <TbDepart> li2 = deptmanager.selectDepart(deid);
      for(int i1=0;i1 <li2.size();i1++){%>
      <option value=" <%=li2.get(i1).getDepartname() %>"> <%=li2.get(i1).getDepartname() %> </option>
      <%}%>
      <option value=""> </option>
      <%}else{
      List <TbDepart> li3 = deptmanager.selectAllDepart(deid);
      %> <option value=""> </option> <%
      for(int i3=0;i3 <li3.size();i3++){
      %>
      <option value=" <%=li3.get(i3).getDepartname() %>"> <%=li3.get(i3).getDepartname() %> </option>
      <%}} %>
      </select>
      </td> <td width=10>&nbsp; </td>
      <td> 
    這個查詢的方法,正確顯示出來
      

  3.   

     No getter method for property: "departame" of bean: "tbDepart"可能是 departame 这个属性没有 get 方法. 你看一下.
      

  4.   

    剛是手誤,少寫了一個n,不是這個問題:它總是報那個錯:
    2009/7/22 下午 02:05:58 org.apache.catalina.core.StandardWrapperValve invoke
    嚴重的: Servlet.service() for servlet action threw exception
    javax.servlet.jsp.JspException: Exception thrown by getter for property: "departname" of bean: "tbDepart"
    at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:969)
    at org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)