2014-01-13 5 views
0

첫 번째 작업을 실행하면 오류가 표시되지 않지만 첫 번째 요청 후에는이 오류가 발생합니다. JSP에서두 번째로 동일한 작업을 호출

내 액션 전화 :

Search Action Class : 
    public String search() { 
     HttpServletRequest request = ServletActionContext.getRequest(); 
     HttpSession session = request.getSession(); 
     session.setAttribute("sort", "1"); 
     dosearch(false, true); 
     populateList(); // this method always populate formatList 
     return "success"; 
    } 

스트럿츠 설정 :

<action name="search" class="com.view.SearchAction"method="search"> 
      <result name="input" type="tiles">search</result> 
      <result name="success" type="tiles">search</result> 
      <result name="error" type="tiles">search</result>        
</action> 

근본 원인 :

tag 'select', field 'list', name 'selectedFormat': The requested list key 'formatList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] 

More on this error: 

    org.apache.struts2.components.Component.fieldError(Component.java:230) 
    org.apache.struts2.components.Component.findValue(Component.java:351) 
    org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80) 
    org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105) 
    org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856) 
    org.apache.struts2.components.UIBean.end(UIBean.java:510) 
    org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) 
    org.apache.jsp.views.search_jsp._jspx_meth_s_005fselect_005f0(search_jsp.java:1222) 
    org.apache.jsp.views.search_jsp._jspx_meth_s_005fform_005f0(search_jsp.java:765) 
    org.apache.jsp.views.search_jsp._jspService(search_jsp.java:181) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954) 
    org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684) 
    org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678) 
    org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:80) 
    org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:73) 
    org.apache.tiles.context.TilesRequestContextWrapper.dispatch(TilesRequestContextWrapper.java:72) 
    org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:88) 
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:283) 
    org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140) 
    org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117) 
    org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:154) 
    org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75) 
    org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80) 
    org.apache.jsp.views.shared.layout_jsp._jspx_meth_tiles_005finsertAttribute_005f2(layout_jsp.java:176) 
    org.apache.jsp.views.shared.layout_jsp._jspService(layout_jsp.java:100) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198) 
    org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:179) 
    org.apache.tiles.context.TilesRequestContextWrapper.dispatch(TilesRequestContextWrapper.java:72) 
    org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:88) 
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:606) 
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:246) 
    org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105) 
    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) 
    com.akiyamag.interceptors.AuthenticationInterceptor.intercept(AuthenticationInterceptor.java:46) 
    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) 
    com.akiyamag.filters.EncodingFilter.doFilter(EncodingFilter.java:106) 
+0

페이지를 리디렉션하는 코드는 어디에 있습니까? –

+0

'formatList'는 collection/array/map/enumeration/iterator 타입이 아닙니다. –

+0

개인 목록 formatList; 공용 목록 getFormatList() { \t \t return formatList; \t} public void setFormatList (List formatList) { \t \t this.formatList = formatList; \t} – chamaraherath

답변

0

나는 이미 오류가 발생했습니다. 솔루션을 생각 나게하면 formatList 객체가 null이거나 비어 있습니다.

+0

빈 콜렉션은 예외를 생성하지 않습니다. –

관련 문제