當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

           在一個程序中,相對User這個領域對象的諸屬性進行修改,用來容納存儲數據的ActionForm是這樣寫的:

          public final class ModifyUserForm extends ActionForm {
              
          private static final long serialVersionUID = -3447738664240089399L;

              
          private User user;
              
              
          public ModifyUserForm(){

              }


              
          public void reset(ActionMapping mapping, HttpServletRequest request) {
              }


              
          public ActionErrors validate(ActionMapping mapping,
                                           HttpServletRequest request) 
          {

                  ActionErrors errors 
          = new ActionErrors();

                  
          return (errors);

              }


              
          public User getUser() {
                  
          return user;
              }


              
          public void setUser(User user) {
                  
          this.user = user;
              }

          }

          結果,進行頁面數據驗證的JS能準確無誤的進行前段驗證,但Action中沒有收到請求,驗證完畢提交表單后出現下面的異常,

          HTTP Status 500 -


          type Exception report

          message

          description The server encountered an internal error () that prevented it from fulfilling this request.

          exception

          javax.servlet.ServletException: javax.servlet.ServletException: BeanUtils.populate
          org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
          org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
          com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
          

           

          root cause

          javax.servlet.ServletException: BeanUtils.populate
          org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469)
          org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
          org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
          org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
          org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
          org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
          org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
          com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
          

           

          root cause

          java.lang.IllegalArgumentException: No bean specified
          org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
          org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:937)
          org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
          org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
          org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
          org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
          org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
          org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
          org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
          org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
          org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
          com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
          

           

          note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.


          Apache Tomcat/6.0.10

          發生這個錯誤的原因應該是使用工具類commons beanutil向ActionForm中的屬性user輸入數據時發生了錯誤,解決這個問題也很簡單,在ActionForm內部將屬性user實例化即可,代碼如下:

          public final class ModifyUserForm extends ActionForm {
              
          private static final long serialVersionUID = -3447738664240089399L;

              
          private User user=new User();
              
              
          public ModifyUserForm(){

              }


              
          public void reset(ActionMapping mapping, HttpServletRequest request) {
              }


              
          public ActionErrors validate(ActionMapping mapping,
                                           HttpServletRequest request) 
          {

                  ActionErrors errors 
          = new ActionErrors();

                  
          return (errors);

              }


              
          public User getUser() {
                  
          return user;
              }


              
          public void setUser(User user) {
                  
          this.user = user;
              }

          }

          posted on 2009-01-15 16:06 何楊 閱讀(731) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 天全县| 章丘市| 西乌珠穆沁旗| 文成县| 溧阳市| 榆林市| 明水县| 施甸县| 上饶县| 开平市| 武安市| 调兵山市| 苗栗县| 贺兰县| 南华县| 柯坪县| 平山县| 丰台区| 于田县| 舟曲县| 宜章县| 慈溪市| 东乡| 盐池县| 云安县| 兰西县| 蒲城县| 镇平县| 阿勒泰市| 湘潭县| 碌曲县| 望江县| 武定县| 台东市| 肇州县| 东明县| 古丈县| 龙陵县| 云阳县| 冷水江市| 博罗县|