struts框架db2数据库我增加了一个字段 lock_no 
不知道哪里错了javax.servlet.jsp.JspException: No getter method for property lockno of bean org.apache.struts.taglib.html.BEAN
at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:968)
at org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:176)
at org.apache.jsp.logistics.carinformationedit_jsp._jspx_meth_html_005ftext_005f7(carinformationedit_jsp.java:1901)
at org.apache.jsp.logistics.carinformationedit_jsp._jspx_meth_html_005fform_005f0(carinformationedit_jsp.java:1249)
at org.apache.jsp.logistics.carinformationedit_jsp._jspService(carinformationedit_jsp.java:594)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at com.zl.base.core.Servlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
2011-10-14 09:25:41 369844 ERROR [http-8080-Processor22] org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/hnsale].[action]     - Servlet.service() for servlet action threw exception
javax.servlet.jsp.JspException: No getter method for property lockno of bean org.apache.struts.taglib.html.BEAN
at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:968)
at org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:176)
at org.apache.jsp.logistics.carinformationedit_jsp._jspx_meth_html_005ftext_005f7(carinformationedit_jsp.java:1901)
at org.apache.jsp.logistics.carinformationedit_jsp._jspx_meth_html_005fform_005f0(carinformationedit_jsp.java:1249)
at org.apache.jsp.logistics.carinformationedit_jsp._jspService(carinformationedit_jsp.java:594)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at com.zl.base.core.Servlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    给lock_no所在的实体类加上这个属性,对添加对应的getter setter方法
      

  2.   

    +1
    设置属性访问器,要符合Bean规范
      

  3.   

    action中配置 public ActionForward update(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    String carId = (String) request.getParameter("carId");
    CarInformationForm carform = (CarInformationForm) form;
    request.setAttribute("isactive.list",   OptionUtil.getIsActiveList());
    carform.setCarId(carId);
    CallHelper helper = initializeCallHelper("getCarInformationById", form,
    request, false);
    helper.execute();
    List carteamList = helper.getResult("results");
    if (carteamList.size() > 0 && carteamList != null) {
    BasicDynaBean rowBean = (BasicDynaBean) carteamList.get(0);
    carform.setCarNum(MethodFactory
    .getThisString(rowBean.get("carnum")));
    carform.setCarName(MethodFactory.getThisString(rowBean
    .get("carname")));
    carform.setTranAbility(MethodFactory.getThisString(rowBean
    .get("tranability")));
    carform.setTonnage(MethodFactory.getThisString(rowBean
    .get("tonnage")));
    carform.setCarteamId(MethodFactory.getThisString(rowBean
    .get("carteamid")));
    carform.setState(MethodFactory.getThisString(rowBean.get("state")));
    carform.setDriverId(MethodFactory.getThisString(rowBean
    .get("driver_id")));
    carform.setDriverName(MethodFactory.getThisString(rowBean
    .get("drivername")));
    carform.setMobileNum(MethodFactory.getThisString(rowBean
    .get("mobilenum")));
    carform.setDriver_card(MethodFactory.getThisString(rowBean
    .get("driver_card")));
    carform.setType(MethodFactory.getThisString(rowBean.get("type")));
    carform.setRe(MethodFactory
    .getThisString(rowBean.get("re")));
    carform.setCarYear(MethodFactory.getThisString(rowBean.get("caryear")));
    carform.setFlag(MethodFactory.getThisString(rowBean.get("flag")));//是否加锁
    carform.setLock_no(MethodFactory.getThisString(rowBean.get("lock_no")));//锁号
    }
    carteam(request, form);
    return mapping.findForward("update");
    }
    db2 存储过程
    --通过id获取车辆信息列表
    --2007-03-17
    --yh
    drop PROCEDURE L_getCarInformationBYID @CREATE PROCEDURE L_getCarInformationBYID
     (IN V_CarID VARCHAR(20)
     ) 
      DYNAMIC RESULT SETS 2
      LANGUAGE SQL
      NOT DETERMINISTIC
      CALLED ON NULL INPUT
      MODIFIES SQL DATA
      INHERIT SPECIAL REGISTERS
      BEGIN    DECLARE SQLCODE INT;    DECLARE v_errCode INT DEFAULT 0;
        
        --------------------------------------------------------
        -- DECLARE CURSORS
        --------------------------------------------------------
        DECLARE v_carCur CURSOR WITH RETURN TO CALLER FOR
            SELECT  a.car_id as carid, a.car_name as carname,a.car_num as carnum, a.carteam_id as carteamid,
    a.tran_ability as tranability,a.state,a.driver_id,a.type,a.photo,a.re,a.tonnage,a.flag,a.lock_no,
    a.isactive,a.caryear,d.driver_name as drivername,d.mobile as mobilenum,d.driver_card as driver_card
    FROM L_CarInformation a 
    left outer join L_driver d
    on a.driver_id = d.driver_id
    where a.car_id=cast(V_CarId as int);    --------------------------------------------------------
        -- DECLARE ERROR HANDLERS
        --------------------------------------------------------
        
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
        BEGIN
            SET v_errCode = SQLCODE;
        END;
        
        --------------------------------------------------------
        -- PROCEDURE BODY
        --------------------------------------------------------
        OPEN v_carCur;    return v_errCode;END
    @form代码 我捡主要的粘过来了
    public class CarInformationForm extends BaseForm {
    private String carId;
    private String carNum;
    private String carName;
    private String carteamId;
    private String createTime;
    private String tranAbility;
    private String state;
    private String driverId;
    private String type;
    private String photoUrl;
    private String photo;
    private FormFile uploadFormFile;
    private String re;
    private String isCheck;
    private String flag;
    private String carYear;
    private String driverName;
    private String mobileNum;
    private String tonnage;
    private String driver_card;
    private String lock_no;

    public String getLock_no() {
    return lock_no;
    }
    public void setLock_no(String lock_no) {
    this.lock_no = lock_no;
    }
    xml配置
    <!--车辆信息维护 yh 2007-03-16 -->   
        <action
            path="/carmanage" type="com.nb.adv.logistics.busistock.action.CarInformationAction"
            name="carinformationform"
            scope="request" parameter="method">
            <forward
                 name="init" path="/logistics/carinformationlist.jsp"/>
            <forward
                 name="init2" path="/logistics/carinformationlist2.jsp"/><!-- 车队-车辆状态维护 -->
            <forward
                 name="add" path="/logistics/carinformationadd.jsp"/>
            <forward
                 name="update" path="/logistics/carinformationedit.jsp"/>
            <forward
                 name="delete" path="/logistics/carinformationlist.jsp"/> 
            <forward
                 name="query" path="/logistics/carinformationlist.jsp"/> 
            <forward
                 name="query2" path="/logistics/carinformationlist2.jsp"/> 
            <forward
                 name="check" path="/logistics/carinformationlist.jsp"/> 
            <forward
                 name="check2" path="/logistics/carinformationlist2.jsp"/> 
            <forward
                 name="audit" path="/logistics/carinformationlist_audit.jsp"/> 
             <forward
                 name="auditcheck" path="/logistics/carinformationlist_audit.jsp"/> 
              <forward
                 name="showphoto" path="/logistics/carinformationphoto_show.jsp"/> 
              <forward
                 name="history_list" path="/logistics/carinformationhistory_list.jsp"/>  
            
        </action>
    不知道还缺什么东西啊
      

  4.   

    还有一个是配置存储过程的
    <!--通过id获取车辆信息-->
         <procedure name="getCarInformationById" target="L_getCarInformationById">
            <in-param   name="carId"         type="java.lang.String"/>    
            <result-set name="results" />
        </procedure>
      

  5.   

    你确定rowBean里面有lock_no的getset方法
      

  6.   

    lock_no  属性还没有对应getter方法你就使用了,当然出错了