Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';spring flowScope中的t access变量_Java_Spring_Spring Webflow_Spring Webflow 2 - Fatal编程技术网

Java Can';spring flowScope中的t access变量

Java Can';spring flowScope中的t access变量,java,spring,spring-webflow,spring-webflow-2,Java,Spring,Spring Webflow,Spring Webflow 2,getClientByCredential()方法将返回依赖于“clientType”的客户端子实例 客户机是一个抽象类。类个人和公司扩展客户端。因此,我不能在flow.xml中这样声明变量客户端: <var name="client" class="somepackage.domain.Client" /> 这是我的flow.xml,但它不起作用 <view-state id="start"> <transition on="credentialE

getClientByCredential()方法将返回依赖于“clientType”的客户端子实例

客户机是一个抽象类。类个人和公司扩展客户端。因此,我不能在flow.xml中这样声明变量客户端:

<var name="client" class="somepackage.domain.Client" /> 

这是我的flow.xml,但它不起作用

<view-state id="start">
    <transition on="credentialEntered" to="getClient"/>
</view-state>

<action-state id="getClient">
    <evaluate result="flowScope.client" expression="clientActions.getClientByCredential(requestParameters.clientType, requestParameters.credentialType, requestParameters.credentialNo)"/>
    <transition to="clientReady"/>
    <transition to="clientAddFork" on-exception="com.rtongsoft.loansystem.util.exception.ClientNotFoundException"/>
</action-state>

<action-state id="clientAddFork">
    <evaluate expression="requestParameters.clientType" />
    <transition on="INDIVIDUAL" to="individualAdd"/>
    <transition on="COPORATE" to="coporateAdd"/>
</action-state>

<action-state id="coporateAdd">
    <transition to="cancel"/>
</action-state>

<view-state id="individualAdd" model="client"> <!-- the exception place -->
    <on-render>
        <evaluate result="viewScope.credentialTypeList" expression="entryService.getEntrysByfield('credentialType')"/>
        <evaluate result="viewScope.nationalityList" expression="entryService.getEntrysByfield('nationality')"/>
        <evaluate result="viewScope.ethnicGroupList" expression="entryService.getEntrysByfield('ethnicGroup')"/>
        <evaluate result="viewScope.educationBackgroundList" expression="entryService.getEntrysByfield('educationBackground')"/>
        <evaluate result="viewScope.genders" expression="T(com.rtongsoft.loansystem.enumeration.Gender).values()"/>
        <evaluate result="viewScope.maritalStatuses" expression="T(com.rtongsoft.loansystem.enumeration.MaritalStatus).values()"/>
    </on-render>
    <transition on="submit" to="addClient"/>
</view-state>

<action-state id="addClient">
    <evaluate expression="clientService.addClient(flowScope.client)"/>
    <transition to="clientReady"/>
</action-state>

<!-- flow end -->
<end-state id="clientReady" >
    <output name="client"/>
</end-state>
<end-state id="cancel" />

<global-transitions>
    <transition on="cancel" to="cancel" />
</global-transitions>

下面是根异常:

> 02-Feb-2016 11:15:28.949 SEVERE [http-nio-8080-exec-2] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.webflow.execution.FlowExecutionException: Exception thrown in state 'individualAdd' of flow 'application'] with root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'client' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
at org.springframework.web.servlet.tags.form.SelectTag.writeTagContent(SelectTag.java:194)
at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
at org.apache.jsp.WEB_002dINF.flows.application.individualAdd_jsp._jspx_meth_form_005fselect_005f0(individualAdd_jsp.java:1660)
at org.apache.jsp.WEB_002dINF.flows.application.individualAdd_jsp._jspx_meth_form_005fform_005f0(individualAdd_jsp.java:1482)
at org.apache.jsp.WEB_002dINF.flows.application.individualAdd_jsp._jspService(individualAdd_jsp.java:378)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
at org.springframework.webflow.mvc.servlet.ServletMvcView.doRender(ServletMvcView.java:55)
at org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:196)
at org.springframework.webflow.engine.ViewState.render(ViewState.java:293)
at org.springframework.webflow.engine.ViewState.refresh(ViewState.java:242)
at org.springframework.webflow.engine.ViewState.resume(ViewState.java:220)
at org.springframework.webflow.engine.Flow.resume(Flow.java:537)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:228)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
.02-Feb-2016 11:15:28.949严重[http-nio-8080-exec-2]org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service(),用于路径[]引发异常的上下文中的Servlet[DispatcherServlet][请求处理失败;嵌套异常为org.springframework.webflow.execution.FlowExecutionException:在流“应用程序”的“individualAdd”状态下引发的异常]具有根本原因
java.lang.IllegalStateException:bean名称“client”的BindingResult和普通目标对象都不能作为请求属性使用
位于org.springframework.web.servlet.support.BindStatus。(BindStatus.java:144)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
位于org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
位于org.springframework.web.servlet.tags.form.SelectTag.writeTagContent(SelectTag.java:194)
位于org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
位于org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
在org.apache.jsp.WEB\u 002dINF.flows.application.individualAdd\u jsp.\u jspx\u meth\u form\u 005fselect\u 005f0(individualAdd\u jsp.java:1660)
在org.apache.jsp.WEB\u 002dINF.flows.application.individualAdd\u jsp.\u jspx\u meth\u form\u 005fform\u 005f0(individualAdd\u jsp.java:1482)
在org.apache.jsp.WEB_002dINF.flows.application.individualAdd_jsp._jsp服务(individualAdd_jsp.java:378)上
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
位于org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
位于org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
位于org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
位于org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
位于org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
位于org.springframework.webflow.mvc.servlet.ServletMvcView.doRender(ServletMvcView.java:55)
位于org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:196)
位于org.springframework.webflow.engine.ViewState.render(ViewState.java:293)
位于org.springframework.webflow.engine.ViewState.refresh(ViewState.java:242)
位于org.springframework.webflow.engine.ViewState.resume(ViewState.java:220)
位于org.springframework.webflow.engine.Flow.resume(Flow.java:537)
在org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)上
位于org.springframework.webflow.executor.flowExecuteImpl.resumeExecution(flowExecuteImpl.java:169)
位于org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:228)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
在
<var name="client" class="somepackage.domain.Client" />