2017-10-26 13 views
0

以下のstruts2コードがあります。開かれたurlでは、フィールドに例外があります:struts2 in s:selectリスト - >コレクション/配列/マップ/列挙型/反復子型としての要求リストキー ''

タグ 'select'、フィールド 'list'、名前 'loanForm.dobDay': 'loanForm.dayRange'というリクエストされたリストキーをコレクション/配列/マップ/列挙型/イテレータタイプとして解決できませんでした。例:私はクラスオブジェクトの以下のようにコード化されたかどうかは、問題の人や人{名前}

<s:select id="dobDay" name="loanForm.dobDay" value="%{loanForm.dobDay}" 
        list="loanForm.dayRange" 
         style="width:40px"> 
        </s:select> 

ですか?これを持つ発見

public LoanForm getLoanForm() { 
     return (LoanForm) 
     ActionContext.getContext().getSession().get("loanForm"); 
    } 

    public void setLoanForm(LoanForm loanForm) { 
     ActionContext.getContext().getSession().put("loanForm", loanForm); 
    } 

--------------LoanForm.java --------------

public List<String> getDayRange() { 
     List<String> day = new ArrayList<String>(); 
     day.add(""); 
     for (int i=1; i<=31; i++) { 
      day.add(String.valueOf(i)); 
     } 

     return day; 
    } 

つ以上問題:

メッセージ:タグ 'select'、フィールド 'list'、名前 'loanForm.confirmationOfficeNt':要求されたリストキー '#session.sBranchCatN'をコレクション/配列/マップ/列挙型/イテレータ型。例:人かの人々は、{名前}

<s:select value="%{loanForm.confirmationOfficeNt}" name="loanForm.confirmationOfficeNt" 
list="#session.sBranchCatN" id="loanFormLocationNT" listKey="key" listValue="value"/> 

完全なスタックトレースに以下の通りです:

私の緑色の豆の経験のため申し訳ありません
org.apache.struts2.components.Component.fieldError(Component.java:260) 
    org.apache.struts2.components.Component.findValue(Component.java:356) 
    org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:84) 
    org.apache.struts2.components.Select.evaluateExtraParams(Select.java:104) 
    org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:886) 
    org.apache.struts2.components.UIBean.end(UIBean.java:535) 
    org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) 
    jsp_servlet._web_45_inf._jsp.__aeon_loan_form_step1._jsp__tag18(__aeon_loan_form_step1.java:1154) 
    jsp_servlet._web_45_inf._jsp.__aeon_loan_form_step1._jsp__tag2(__aeon_loan_form_step1.java:411) 
    jsp_servlet._web_45_inf._jsp.__aeon_loan_form_step1._jsp__tag1(__aeon_loan_form_step1.java:296) 
    jsp_servlet._web_45_inf._jsp.__aeon_loan_form_step1._jspService(__aeon_loan_form_step1.java:212) 
    weblogic.servlet.jsp.JspBase.service(JspBase.java:35) 
    weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286) 
    weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) 
    weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) 
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350) 
    weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:489) 
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:376) 
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247) 
    weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:630) 
    weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:287) 
    org.apache.struts2.result.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:167) 
    org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:208) 
    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:366) 
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:270) 
    com.oktify.web.interceptors.MobileInterceptor.intercept(MobileInterceptor.java:61) 
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240) 
    org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:556) 
    org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:81) 
    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:113) 
    weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) 
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3701) 
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3667) 
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) 
    weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) 
    weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) 
    weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) 
    weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443) 
    weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291) 
    weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269) 
    weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1703) 
    weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1663) 
    weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272) 
    weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352) 
    weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337) 
    weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57) 
    weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
    weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644) 
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:415) 
    weblogic.work.ExecuteThread.run(ExecuteThread.java:355) 
+0

Thxただし、まだ動作しません。 "loanForm.dayRange"と同じエラーです。 – AMMA

+0

他のloanForm.nameがstruts2のテキストフィールドで動作しています。 – AMMA

+0

ゲッターセッターを使用して、リストのメソッドを呼び出す代わりに事前に値を設定するのはなぜですか?そうすれば Yash

答えて

0

。 私は解決しました。 これは、loanFormなどの変数のnull値によるものです。 ゲッターをヌルかどうかを確認してから初期化しました。

関連する問題