进入最终状态时,这是我的流量(简化):java.lang.IllegalStateException通过Primefaces的commandButton
<view-state id="create" view="createCustomer.xhtml">
<transition on="create" to="end">
<evaluate expression="controller.validateCustomerFilled(customer)"/>
</transition>
</view-state>
<end-state id="end" view="customerCreated.xhtml">
<on-entry>
<evaluate expression="controller.createCustomer(customer)"/>
</on-entry>
</end-state>
和我的facelet(也被简化):
<p:commandButton value="Test Ajax" action="create" update="content, messages"/>
<p:commandButton value="Test No Ajax" action="create" ajax="false"/>
只要作为“customerCreated.xhtml”不包含啊:表格,一切似乎都很好。但是,如果它确实存在,但以下情况除外得到投掷:没有Ajax的commandButton:
java.lang.IllegalStateException: The current state 'end' of this flow 'customer/create' is not a view state - view scope not accessible
at org.springframework.webflow.engine.impl.FlowSessionImpl.getViewScope(FlowSessionImpl.java:119)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.getViewScope(RequestControlContextImpl.java:130)
at org.springframework.faces.webflow.FlowResponseStateManager.saveState(FlowResponseStateManager.java:106)
at org.springframework.faces.webflow.FlowResponseStateManager.getViewState(FlowResponseStateManager.java:100)
at javax.faces.application.StateManager.getViewState(Unknown Source)
at javax.faces.application.StateManagerWrapper.getViewState(Unknown Source)
at com.sun.faces.context.PartialViewContextImpl.renderState(Unknown Source)
at com.sun.faces.context.PartialViewContextImpl.processPartial(Unknown Source)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.context.PartialViewContextWrapper.processPartial(Unknown Source)
at javax.faces.component.UIViewRoot.encodeChildren(Unknown Source)
at javax.faces.component.UIComponent.encodeAll(Unknown Source)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source)
at com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source)
at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
at org.springframework.faces.support.LifecycleWrapper.render(LifecycleWrapper.java:54)
at org.springframework.faces.webflow.JsfView.render(JsfView.java:87)
at org.springframework.webflow.action.ViewFactoryActionAdapter.doExecute(ViewFactoryActionAdapter.java:40)
at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
at org.springframework.webflow.engine.EndState.doEnter(EndState.java:100)
at org.springframework.webflow.engine.State.enter(State.java:194)
at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:231)
at org.springframework.webflow.engine.ViewState.resume(ViewState.java:195)
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.faces.webflow.JsfFlowHandlerAdapter.handle(JsfFlowHandlerAdapter.java:57)
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.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1285)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1143)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:81)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:927)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:262)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:955)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
这不使用常规的h当发生(用F时:AJAX,只是什么都不会发生在客户端)。
使用: - 春4.2.0 - 春天的Webflow 2.4.2 - Primefaces 5.2 - 钻嘴鱼科2.2.9
为什么使用Spring WebFlow而不是JSF 2.2的内置Faces Flow?我可以理解为什么如果人们仍然使用旧的JSF 2.0/2.1,就会使用SWF,但在这里并不是这样。或者你只是不了解新的JSF 2.2 Faces Flow功能? https://docs.oracle.com/javaee/7/tutorial/jsf-configure003.htm – BalusC
,如果第二个按钮失败,并且您将其更改为'h:commandButton',但仍然失败,则不是PrimeFaces相关,但纯粹的JSF/SWF – Kukeltje
不,使用h:commandButton时,一切正常,这就是我们目前的做法。关于FacesFlows,我们不能使用它们,因为WebSphere是...特殊的:http://stackoverflow.com/questions/32522858/how-to-use-spring-webflow-popup-true-with-primefaces/32816661#comment52908245_32522858 – Iavra