Ordinary hut

          人間一福地,勝似天仙宮
          posts - 61, comments - 50, trackbacks - 0, articles - 1
          今天研究struts2的標(biāo)簽功能,在用checkboxlist的時(shí)候,
          代碼如下
          <s:checkboxlist list="roles" listKey="id" listValue="name" name="selectRoleId"></s:checkboxlist>
          出現(xiàn)了如下異常:

          org.apache.jasper.JasperException: tag 'checkboxlist', field 'list', name 'selectRoleId': The requested list key 'roles' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
              org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:
          541)
              org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
          435)
              org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
          320)
              org.apache.jasper.servlet.JspServlet.service(JspServlet.java:
          266)
              javax.servlet.http.HttpServlet.service(HttpServlet.java:
          803)
              org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:
          154)
              org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:
          186)
              com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:
          361)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          265)
              com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:
          249)
              org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:
          68)
              com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:
          87)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:
          122)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:
          195)
              com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:
          87)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:
          195)
              com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:
          87)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:
          148)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:
          93)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:
          235)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:
          89)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:
          128)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:
          104)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:
          267)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:
          126)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:
          138)
              com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:
          87)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:
          148)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:
          164)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:
          128)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:
          176)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.interceptor.TokenInterceptor.handleValidToken(TokenInterceptor.java:
          178)
              org.apache.struts2.interceptor.TokenInterceptor.doIntercept(TokenInterceptor.java:
          144)
              com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:
          87)
              com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:
          236)
              org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:
          52)
              org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:
          468)
              org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:
          77)
              org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:
          76)
          出現(xiàn)這個(gè)錯(cuò)誤的原因可能如下:

          1 剛進(jìn)入該界面的時(shí)候發(fā)生錯(cuò)誤,原因是 list="roles"中的這個(gè)集合是空的,導(dǎo)致錯(cuò)誤

          解決辦法很簡(jiǎn)單,不能讓list為空

          2 剛進(jìn)入該界面的時(shí)候list是有數(shù)據(jù)的,當(dāng)點(diǎn)擊提交等按鈕的時(shí)候,數(shù)據(jù)被提交到后臺(tái),如果配置了驗(yàn)證框架或者在action中寫了validate方法,校驗(yàn)沒(méi)有通過(guò),未走action,直接返回了input,又指定回了當(dāng)前界面。
          此時(shí)的checkboxlist中的list丟失了,導(dǎo)致了如上錯(cuò)誤(這個(gè)錯(cuò)誤提示的不太友好,讓人認(rèn)為是類轉(zhuǎn)換錯(cuò)誤)

          解決辦法是把初始化list的工作放到prepare攔截器中,因?yàn)閜repare是在validate攔截器之前執(zhí)行,即實(shí)現(xiàn)prepareble接口:
          public class RoleAction extends ActionSupport implements Preparable{
              @Override
              
          public void prepare() throws Exception {
                  
          //初始化list
              }
          }

          Feedback

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2009-04-23 17:55 by weid
          good!問(wèn)題解決,謝謝樓主!

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2009-07-06 00:09 by mega
          寫了 RoleAction 之后,怎么用?

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄[未登錄](méi)  回復(fù)  更多評(píng)論   

          2009-09-07 08:24 by King
          非常感謝,我終于找到了錯(cuò)誤的原因

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2009-11-16 22:02 by ddq
          感謝,一樣的錯(cuò)誤

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2010-01-18 09:21 by 11
          謝謝樓主。

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2010-06-22 23:02 by Eric_jiang
          我也遇到這個(gè)問(wèn)題 謝謝指教

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2010-07-27 13:14 by South
          大頂樓主!

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2010-10-20 17:25 by jwshuang21
          還有可能是傳入的參數(shù)在ACTION中沒(méi)有定義全局變量。

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2010-10-26 23:57 by j
          太感謝了一只在想這個(gè)問(wèn)題

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2011-01-15 17:26 by ZJY
          問(wèn)題解決,太感謝樓主了

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2011-05-20 10:01 by 任超
          我剛遇到這個(gè)問(wèn)題,請(qǐng)問(wèn)怎么去解決呀 新手 請(qǐng)教了!
          加QQ 280096669

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2011-05-20 10:08 by 任超
          有沒(méi)有詳細(xì)點(diǎn)的!

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄[未登錄](méi)  回復(fù)  更多評(píng)論   

          2012-05-16 20:51 by 袁勇
          樓主已經(jīng)超神了!

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2012-10-31 16:13 by ww
          神一般樓主啊

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2013-05-02 00:00 by woshishui
          這是什么意思?

          # 菜鳥(niǎo)求助!!!  回復(fù)  更多評(píng)論   

          2013-11-12 18:36 by jackLin
          樓主,這個(gè)問(wèn)題我糾結(jié)一天了,希望您能指導(dǎo)指導(dǎo)啊!!!

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2014-01-05 13:54 by 公子
          這樣寫的話,豈不是action中的每一個(gè)方法都會(huì)出現(xiàn)初始化一遍

          加一個(gè)判斷是妥妥的

          # re: 關(guān)于struts2的checkboxlist、select等標(biāo)簽發(fā)生could not be resolved as a collection/array/map/enumeration/iterator type異常的記錄  回復(fù)  更多評(píng)論   

          2014-04-10 11:40 by 游客
          問(wèn)題搞定,神一般樓主啊,謝謝樓主。
          主站蜘蛛池模板: 福海县| 夏邑县| 辽阳县| 泽州县| 洪泽县| 岳西县| 莒南县| 府谷县| 井陉县| 三门峡市| 东方市| 昂仁县| 蓝田县| 若尔盖县| 兴义市| 黄龙县| 济源市| 无为县| 买车| 资中县| 驻马店市| 仁布县| 黄山市| 贵南县| 汉寿县| 黑龙江省| 离岛区| 兖州市| 集安市| 巫溪县| 岳西县| 德阳市| 玉树县| 垦利县| 遂宁市| 海晏县| 原平市| 伊春市| 阿拉善盟| 沂水县| 郯城县|