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

          真正的快樂來源于創造

            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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 莎车县| 铁岭县| 阿克苏市| 襄樊市| 屯昌县| 宜阳县| 永济市| 湛江市| 台湾省| 蚌埠市| 新邵县| 田林县| 临城县| 定州市| 磐安县| 繁峙县| 通河县| 永嘉县| 通化市| 奎屯市| 报价| 扶风县| 宜良县| 普格县| 沂源县| 依安县| 申扎县| 抚州市| 木兰县| 从江县| 孝义市| 双峰县| 商都县| 邵阳县| 离岛区| 左权县| 进贤县| 双牌县| 崇左市| 榆树市| 富锦市|