%Printer -dao.MachinePrice{timePcs=1.0, modelname=三頭PICK, timePrice=4.0, unit=PCS, price=0.026667, onlykeyid=280, timePre=24.0, id=component[modelno,stepId]{modelno=SB0709, stepId=A}, stepName=C}
%Printer -dao.MachinePrice{timePcs=8.0, modelname=細十二叉, timePrice=4.0, unit=PCS, price=0.001389, onlykeyid=210, timePre=10.0, id=component[modelno,stepId]{modelno=SA0441, stepId=A}, stepName=B}
%Printer -dao.MachinePrice{timePcs=9.0, modelname=dffdd, timePrice=4.0, unit=pcs, price=0.00142, onlykeyid=24, timePre=11.5, id=component[modelno,stepId]{modelno=SA1309, stepId=A}, stepName=E}
%Printer -more......
%AbstractFlushingEventListener -executing flush
%ConnectionManager -registering flush begin
%ConnectionManager -registering flush end
%AbstractFlushingEventListener -post flush
%SessionFactoryUtils -Closing Hibernate Session
%SessionImpl -closing session
%ConnectionManager -performing cleanup
%ConnectionManager -releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
%DriverManagerConnectionProvider -returning connection to pool, pool size: 1
%JDBCContext -after transaction completion
%ConnectionManager -transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
%SessionImpl -after transaction completion
%PropertyMessageResources -Initializing, config='org.apache.struts.taglib.logic.LocalStrings', returnNull=true
%PropertyMessageResources -Operating in Default mode [null]
%PropertyMessageResources -Initializing, config='org.apache.struts.taglib.bean.LocalStrings', returnNull=true
%PropertyMessageResources -Operating in Default mode [null]
%PropertyMessageResources -getMessage(zh_TW,lookup.method)
%PropertyMessageResources -loadLocale(zh_TW)
%PropertyMessageResources -  Loading resource 'org/apache/struts/taglib/LocalStrings_zh_TW.properties'
%PropertyMessageResources -  Resource org/apache/struts/taglib/LocalStrings_zh_TW.properties Not Found.
%PropertyMessageResources -loadLocale(zh)
%PropertyMessageResources -  Loading resource 'org/apache/struts/taglib/LocalStrings_zh.properties'
%PropertyMessageResources -  Resource org/apache/struts/taglib/LocalStrings_zh.properties Not Found.
%PropertyMessageResources -loadLocale()
%PropertyMessageResources -  Loading resource 'org/apache/struts/taglib/LocalStrings.properties'
%PropertyMessageResources -  Loading resource completed
%PropertyMessageResources -  Saving message key '.message.bundle
%PropertyMessageResources -  Saving message key '.lookup.target
%PropertyMessageResources -  Saving message key '.computeURL.specifier
%PropertyMessageResources -  Saving message key '.lookup.scope
%PropertyMessageResources -  Saving message key '.parameters.multi
%PropertyMessageResources -  Saving message key '.actionErrors.errors
%PropertyMessageResources -  Saving message key '.lookup.method
%PropertyMessageResources -  Saving message key '.computeURL.forward
%PropertyMessageResources -  Saving message key '.lookup.bean.any
%PropertyMessageResources -  Saving message key '.actionMessages.errors
%PropertyMessageResources -  Saving message key '.lookup.bean
%PropertyMessageResources -  Saving message key '.lookup.access
%PropertyMessageResources -  Saving message key '.lookup.argument
%PropertyMessageResources -  Saving message key '.message.message
%PropertyMessageResources -  Saving message key '.write.io
%org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: "ONLYKEYID" of bean: "machineprice"
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at filter.setEncodeFilter.doFilter(setEncodeFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: "ONLYKEYID" of bean: "machineprice"
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
at org.apache.jsp.machineprice_jsp._jspService(machineprice_jsp.java:236)
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:374)
... 18 more
Caused by: javax.servlet.jsp.JspException: No getter method for property: "ONLYKEYID" of bean: "machineprice"
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:915)
at org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:233)
at org.apache.jsp.machineprice_jsp._jspx_meth_bean_005fwrite_005f0(machineprice_jsp.java:272)
at org.apache.jsp.machineprice_jsp._jspService(machineprice_jsp.java:160)
... 21 more

解决方案 »

  1.   

    没为这个属性machineprice 提供getter方法
      

  2.   

    machineprice 代表的类
    为ONLYKEYID  生成getter方法
      

  3.   

    [code=Java] No getter method for property: "ONLYKEYID" of bean: "machineprice" javabean :  machineprice中缺少ONLYKEYID这个属性的get方法,你在这个javabean中加上ONLYKEYID这个属性的get方法应该就OK
      

  4.   

    Caused by: javax.servlet.jsp.JspException: No getter method for property: "ONLYKEYID" of bean: "machineprice" 没有为machineprice这个类的ONLYKEYID属性提供getter方法~
      

  5.   

    machineprice有生成 onlykeyid 域的set,和get都有
      

  6.   

    Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: "ONLYKEYID" of bean: "machineprice" 
      

  7.   


    hibernate.cfg.xml
    <mapping resource="dao/MachinePrice.hbm.xml"></mapping>machineprice.hbm.xml
    <hibernate-mapping>
        <class name="dao.MachinePrice" table="MachinePrice" schema="dbo" catalog="product">
            <composite-id name="id" class="dao.MachinePriceId">
                <key-property name="modelno" type="java.lang.String">
                    <column name="MODELNO" length="50" />
                </key-property>
                <key-property name="stepId" type="java.lang.String">
                    <column name="StepID" length="5" />
                </key-property>
            </composite-id>
            ....
            <property name="onlykeyid" type="java.lang.Integer">
                <column name="ONLYKEYID" not-null="true" />
            </property>
      

  8.   

    从异常来看就是这个原因。你的javabean在jsp中引入了吗?
      

  9.   


    public class MachinePrice extends AbstractMachinePrice
    ...
    private Integer onlykeyid;
    ........
    public Integer getOnlykeyid()
    {
    return this.onlykeyid;
    } public void setOnlykeyid(Integer onlykeyid)
    {
    this.onlykeyid = onlykeyid;
    }
      

  10.   


    <logic:iterate id="mp" name="machineprice" type="dao.MachinePrice">
               <tr>
                 <td><bean:write name="mp" property="modelno"/></td>
                 <td><bean:write name="mp" property="modelname"/></td>
                 <td><bean:write name="mp" property="unit"/></td>
                 <td><bean:write name="mp" property="stepid"/></td>
                 <td><bean:write name="mp" property="stepname"/></td>
                 <td><bean:write name="mp" property="price"/></td>
                 <td><bean:write name="mp" property="timepcs"/></td>
                 <td><bean:write name="mp" property="timepre"/></td>
                 <td><bean:write name="mp" property="timeprice"/></td>
                </tr>
    </logic:iterate>
      

  11.   

    这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的form bean。大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。换句话说,action和form都应该各自有一个name属性,并且要精确匹配,包括大小写。这个错误当没有name属性和action关联时也会发生,如果没有在action中指定name属性,那么就没有name属性和action相关联。当然当action制作某些控制时,譬如根据参数值跳转到相应的jsp页面,而不是处理表单数据,这是就不用name属性,这也是action的使用方法之一简单点说就是struts-config.xml里面配置的action 里面的name属性找不到<form-beans >里面配置的form